符。
② ? ?>中的PHP 代码与 以及 ?>至少应有一个空格或回车,以便PHP 语言解释器能正确区分它们。
(2)变量:$a 是PHP 变量。变量名区分大小写。 变量的表示:一个美元符号跟一个变量名称。
有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。 例如,$a 是一个变量,$A 是不同于$a 的另一个变量。$a、$_a、$_a123_123_a 是合法变量,$123a 不合 法。
变量的声明:使用前不需要声明数据类型,其类型由所存储的数据决定,即所用即所声明。 PHP 在变量定义中不需要明示的类型定义;变量类型是根据使用该变量的上下文所决定的。也就是说,如
果你把一个字符串值赋给变量 var,var 就成了一个字符串。如果你又把一个整型值赋给 var,那它就成了
一个整数。
(3)字符串常量:\是PHP 字符串常量。
(4)赋值运算:一个等号“=”表示赋值运算。 (5)语句结束符:分号“;”是语句结束符,这一点也同C 语言。
(6)关键字:echo 是PHP 关键字,是PHP 的内置函数名,可换成print。许多PHP 编程者常使用只有4 个字 母的echo。
注意:
①关键字echo 等不区分大小写;
②同C 语言,PHP 是函数化语言,echo 关键字就是echo()函数的函数名,echo $a 也可写为echo($a)或
print($a)。
(7)注释:本例采用的是C/C++语言形式的注释方法,常用于简短的行注释。行注释也可采用Unix Shell 语言
的注释方法,即把“//”换成“#”即可。多行注释的方法与C 语言同。
总结:例3-1 的程序,虽然简单,但基本浓缩了PHP 的语法要素,其形式与C 语言类似甚至更简单。
3.常用变量处理函数
(1)gettype——获取变量类型
语法格式:string gettype ( mixed var ) 返回 PHP 变量var 的类型。
常见的返回的字符串的可能值为: “boolean” “integer” “double” “string” “array” “object” “resource” “NULL”
(2)判断变量是否为某种类型 is_int -- 检测变量是否是整数 语法格式:
bool is_int ( mixed var )
PHP 讲义 第 38 页 共 90 页
描述:
如果 var 是 integer 则返回 TRUE,否则返回 FALSE。
注: 若想测试一个变量是否是数字或数字字符串(如表单输入,它们通常为字符串),必须使用 is_numeric()。
其他常用的,判断变量是否为某种类型的函数: is_bool() is_float() is_integer() is_numeric()
is_string() is_array()
(3)unset -- 释放给定的变量 语法格式:
void unset ( mixed var [, mixed var [, ...]] ) 描述:
unset() 销毁指定的变量。
// 销毁单个变量 unset ($foo);
// 销毁单个数组元素 unset ($bar['quux']); // 销毁一个以上的变量 unset ($foo1, $foo2, $foo3); ?>
unset():删除数组或数组元素
注: unset() 函数允许取消一个数组中的键名。要注意数组将不会重建索引。
$a = array( 1 => 'one', 2 => 'two', 3 => 'three' ); unset( $a[2] );
/* 将产生一个数组,定义为 $a = array( 1=>'one', 3=>'three'); 而不是
$a = array( 1 => 'one', 2 => 'three'); */
$b = array_values($a);
// 现在数组 $b 是 array(0 => 'one', 1 =>'three') ?>
(4)empty -- 检查一个变量是否为空 描述
bool empty ( mixed var )
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,\、0、\、NULL、FALSE、array()、var
$var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。
例子 empty() 与 isset()(检测变量是否设置)的一个简单比较。 PHP 讲义 第 39 页 共 90 页
$var = 0;
// 结果为 true,因为 $var 为空 if (empty($var)) {
echo '$var is either 0 or not set at all'; }
// 结果为 false,因为 $var 已设置 if (!isset($var)) {
echo '$var is not set at all'; } ?>
(5)var_dump -- 打印变量的相关信息 语法格式:
void var_dump ( mixed expression [, mixed expression [, ...]] ) 描述:
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结
构。
var_dump() 与 print_r()常用于程序调适,前者会显示更多的信息。 例子 var_dump() 示例
$a = array (1, 2, array (\var_dump ($a); /* 输出: array(3) { [0]=> int(1) [1]=> int(2) [2]=> array(3) { [0]=> string(1) \[1]=>
string(1) \[2]=>
string(1) \} } */
$b = 3.1; $c = TRUE;
var_dump($b,$c);
PHP 讲义 第 40 页 共 90 页 /* 输出: float(3.1) bool(true) */
?>
(6)print_r ——打印关于变量的易于理解的信息。 语法格式:
bool print_r ( mixed expression ) 描述:
print_r() 显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如
果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。
记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x','y','z')); print_r ($a); ?>
上边的代码将输出: Array (
[a] => apple [b] => banana [c] => Array ( [0] => x [1] => y [2] => z )
)
4.访问客户端变量的方法
注意:在B/S 程序中,客户端指浏览器Browser 端。 从第二章第二节可以了解到:
从PHP 的角度看,浏览器向服务器传递数据:
使用表单对象时,$表单对象名=表单变量。
使用URL?参数名=参数值时,$参数名=查询字符串(querystring)变量。 一个简单的 HTML 表单
x.htm
根据特定的设置和个人的喜好,有很多种方法访问客户端变量,这里仅介绍常用的两种方法: 例:访问POST 表单变量(简称POST 变量) x.php
//①直接使用客户端变量(学习使用)
//PHP 配置文件中 指令 register_globals = on 时可用。不过 //为提高服务器安全性和提升性能
//自 PHP 4.2.0 起默认为 register_globals = off。 // 在实际应用中,不提倡使用/依赖此种方法。
echo $username;
// ②通过超全局变量数组引用表单变量的方式(实际应用) //自 PHP 4.1.0 起可用
echo $_POST['username'];//若username 是通过GET 方法传递的,这里应将$_POST 换成$_GET
echo $_REQUEST['username']; ?>
通过GET 方法传递:当表单采用GET 方法,或username 为查询字符串变量时。 关于第二种,首先要弄清楚变量的传递方法(POST/GET),然后通过相应的超全局变量数组($_POST/$_GET)
来引用,为方便页内使用,可先转成简单变量的形式,如$username=$_POST['username'],然后再使用。
第一种方法不用管客户端传递数据的方法,按名访问即可,较为简单。因实验条件原因(实验室Win95 下安装
的PHP 版本为4.0.4),同时考虑到方便学习,本课程采用第一种:直接使用客户端变量的方法。
5.PHP 变量的作用域
按照PHP 变量的定义方式,PHP 变量的分类和相应的作用域分别为:
(1)客户端变量:主要是表单变量、查询字符串变量等,由客户端编程人员设计、定义、提交的变量。
作用域是一个PHP 页。
(2)服务器端程序员变量:在PHP 程序中程序员定义的变量,如例3-1 中的$a。 作用域是一个PHP 页。
(3)预定义变量:由PHP 自己定义好的变量,变量名是固定的,存储在$_SERVER、$_ENV 等部分超全局数
组中。作用域是全局。 6.超全局变量数组 自 PHP 4.1.0 起,取得客户端变量的首选方法是通过引用超全局变量数组中的元素。超全局