第三章 PHP语法
本章主要介绍PHP基本语法,为进一步控制客户端表示,和操纵数据库做准备。
第一节 基本语法
1.最简单的PHP程序
【例3-1】最简单的PHP程序(3-1.php)
例3-1源程序
该例作用是PHP向Apache送出一个字符串常量,内容是hello,world,再由Apache将其送到给向客户端的浏览器,由浏览器来解释执行。浏览器接收到的内容如图所示,可通过浏览器的查看菜单单击源文件来看到。
例3-1浏览器收到的代码
由于hello,world不是HTML或JavaScript等浏览器能解释的客户端代码,所以它只能被浏览器原样输出到浏览器窗口中。在浏览器窗口中看到的最终结果如图所示。
例3-1浏览器执行结果
PHP讲义 第 36 页 共 91 页
2.剖析最简单的PHP程序
例3-1源程序3-1.php中:
(1)PHP语言标记符:是结束标记符,二者之间的部分是PHP代码。 注意:
①PHP语言标记符有多种, … ?>是最为精简的一种,为简便起见,本课程采用这种标记符。
② … ?>中的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讲义 第 37 页 共 91 页
描述:
如果 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 的反义词。参见转换为布尔值获取更多信息。
PHP讲义 第 38 页 共 91 页
例子 empty() 与 isset()(检测变量是否设置)的一个简单比较。
$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;
PHP讲义 第 39 页 共 91 页
var_dump($b,$c);
/* 输出: 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