运算符
运算符是用来对变量、常量或数据进行计算的符号;它对一个值或一组值执行一个指定的操作。PHP运算符包括:算术运算符、赋值运算符、逻辑运算符、比较运算符、字符串运算符、递增递减运算符、位运算符、执行运算符、错误控制运算符,这里介绍一些常用的运算符。
1.算术运算符
算术运算符号,是处理四则运算的符号。在数字的处理中,应用的最多。常用的有:
加法运算
+
如:$a+$b
减法运算
-
如:$a-$b
乘法运算
*
如:$a*$b
除法运算
/
如:$a/$b
取余运算
%
如:$a%$b
在算术运算符中使用“%”求余,如果被除数($a)是负数的话,那么取得的结果也是一个负值。
例子:算术运算符
";
//计算
echo "\$a+\$b=".($a+$b)."
";
echo "\$a-\$b=".($a-$b)."
";
echo "\$a*\$b=".($a*$b)."
";
echo "\$a/\$b=".($a/$b)."
";
echo "\$a%\$c=".($a%$c)."
";
?>
2.字符串运算符
字符串运算符只有一个,即英文的句号“.”。它将两个字符串连接起来,结合到一起形成一个新的字符串。
需要注意:在PHP中“+”号并不是连接符,而必须使用”.”。
例子:“+”和“.”的区别
";
$mn=$n+$m;
echo $mn;
?>
3.赋值运算符
赋值运算符是把基本赋值运算符(“=”)右边的值赋给左边的变量或者常量。在PHP中的赋值运算符有:
赋值 = $a=b $a=3 将右边的值赋给左边
加 += $a+=b $a=$a+b 将右边的值加到左边
减 -= $a-=b $a=$a-b 将右边的值减到左边
乘 *= $a*=b $a=$a*b 将左边的值乘以右边
除 /= $a/=b $a=$a/b 将左边的值除以右边
连接字符 .= $a.=b $a=$a.b 将右边的字符加到左边
取余数%= $a%=b $a=$a%b将左边值对右边取余数
例子:赋值运算符
";
$a-=4;
echo $a."
";
$a*=5;
echo $a."
";
$a/=2;
echo $a."
";
$a%=2;
echo $a."
";
$a.="php";
echo $a."
";
?>
4.位运算符
位运算符是指对二进制位从低位到高位对齐后进行运算。在PHP中的位运算符如下:
&
按位与
$m & $n
|
按位或
$m | $n
^
按位异或
$m ^ $n
~
按位取反
$m ~ $n
<<
向左移位
$m << $n
>>
向右移位
$m >> $n
、
例子:位运算符
>1;
//位右移操作
1,1111,1110
510
$x=1021;
$z4=$x>>2;
//位右移操作
1111,1111
255
?>
5.递增或递减运算符
算术运算符适合在两个或者两个以上不同的操作数的场合使用,但是,当只有一个操作数的时候,使用算术运算符,是没有必要的。这时,就可以使用“++”或者“--”运算符,即递增或递减运算符。
递增或递减运算符的使用方法有两种,一种是先将变量增加或减少1后再将值赋给原变量,叫做前置递增或递减运算符;另一种是将运算符放在变量后面,即先返回变量的当前值,然后变量的当前值增加或者减少1,叫做后置递增或递减运算符。
例子:递增或递减运算符
";
echo "\$a++=".$a++."
";
echo "运算后\$a的值:".$a."
";//先返回变量的当前值,然后变量的当前值再加1。
echo "++\$b=".++$b."
";
echo "运算后\$b的值:".$b."
";//$b当前值先加1,然后返回新值。
echo "
";
echo "\$a=$a,\$b=$b
";
echo "\$a--=".$a--."
";
echo "运算后\$a的值:".$a."
";//先返回变量的当前值,然后变量的当前值再加1。
echo "--\$b=".--$b."
";
echo "运算后\$b的值:".$b."
";//$b当前值先加1,然后返回新值。
?>
6.逻辑运算符
逻辑运算符用来组合逻辑运算的结果,是程序设计中一组非常重要的运算符。PHP的逻辑运算符如下:
&&或and(逻辑与)$m and $n 当$m和$n都为真时,结果为真。
||或or(逻辑或)$m || $n 当$m为真或$n为真时,结果为真。
xor(逻辑异或)$m xor $n 当$m、$n一真一假时,结果为真。
!(逻辑非)!$m 当$m为假时,结果为真。
例子:逻辑运算符
";
var_dump($i && $z);//当所有
达式都为true时,返回true,否则返回false
echo "
";
//逻辑或(可理解为加法1+1=不为0 1+0=1 0+0=0)
var_dump($i or $j);
echo "
";
var_dump($i || $z);//当所有表达式都为false时,返回false,否则返回true
echo "
";
//逻辑异或(可理解为相同即为0假,不同即为1真)
var_dump($i xor $j);
echo "
";
var_dump($i xor $z);//当只有一个表达式为true时,返回true,否则返回false
echo "
";
?>
注意:在逻辑运算符中,逻辑与和逻辑或这两个运算符有4种运算符号(&& and和|| or),其中属于同一个逻辑结构的两个运算符号(例如:&&和and)之间却有着不同的优先级别。
例子:逻辑运算符的优先级别
";
if (($i || $j) and $z)//由于||和&&的优先级高于or和and,所以先做的是||
{
echo "true";
}
else
{
echo "false";
}
?>
7.比较运算符
比较运算符就是对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回true,如果为假,则返回false。PHP中的比较运算符如下:
<
小于
>
大于
<=
小于等于
>=
大于等于
==
相等
!=
不等
===
恒等
!==
非恒等
这里面不太常见的是===和!==。
$a===$b,说明$a和$b不只是数值上相等,而且两者的类型也一样。
$a!==$b,就是说$a和$b或者数值不等,或者类型不等。
例子:比较运算符
";
echo "\$value==100:";
var_dump($value==100);
echo "
";
echo "\$value==true:";
var_dump($value==true);
echo "
";
echo "\$value!=null:";
var_dump($value!=null);
echo "
";
echo "\$value==false:";
var_dump($value==false);
echo "
";
echo "\$value===100:";
var_dump($value===100);
echo "
";
echo "\$value===true:";
var_dump($value===true);
echo "
";
echo "(10/2.0!==5):";
var_dump(10/2.0!==5);//输出假是因为结果应该为浮点型而不是整型
?>
8.其他运算符
三元运算符(?:)
三元运算符用于根据一个表达式在另两个表达式中选择一个,而不是用来在两个语句或者程序中选择。三元运算符最好放在括号里。
例子:三元运算符
@错误屏蔽
@错误屏蔽运算符可以对程序中出现错误的表达式进行操作,进而对错误信息进行屏蔽,其使用的方法就是在错误的表达式前加上@即可。它只是对错误信息进行屏蔽,并没有真正解决错误。
经常在程序中使用的某些函数出现一些不必要(不影响程序运行的错误)的错误信息时,使用该运算符进行屏蔽。针对程序中的一些影响程序运行的错误,使用它不是解决问题的根本办法,不推荐使用。
例子: @错误屏蔽
9.运算符的优先级
所谓运算符的优先级,是指在应用中哪一个运算符先计算,哪一个后计算,与数学的四则运算遵循的“先乘除,后加减”是一个道理。
PHP的运算符在运算中遵循的
是:
优先级高的运算先做,优先级低的操作后做,同一优先级的操作按从左到右的顺序进行。也可以像四则运算那样使用小括号,括号内的运算最先进行。(优先级见黄皮书P62)
这么多的级别,如果要都记住不太现实,也没有必要。如果写的表达式真的很复杂,而且包含较多的运算符,不妨多加点(),例如:$a and (($b!=$c)or(5*(50-$d)));这样就会减少出现逻辑错误的可能。
表达式
表达式是构成PHP程序语言的基本元素,也是PHP最重要的组成元素。在PHP语言中,几乎所写的任何东西都是表达式。最基本的表达式形式就是常量和变量。如:”$m=20”
表达式是通过具体的代码来实现的,是多个符号集合起来组成的代码,而这些符号只是一些对PHP解释程序有具体含义的最小单元。他们可以是变量名、函数名、运算符、字符串数值和括号等。
如:
这就是由来两个表达式组成的脚本,即:“fine”和$a=“word”;
在PHP的代码中,使用分号(;)来区分表达式,表达式也可以包含在括号内。可以这样理解:一个表达式再加上一个分号,就是一条PHP语句。
注意:在编写程序时,应该注意表达式后面的这个分号,不要漏写,这是一个出现频率很高的错误点。
自定义函数
在PHP中,编写程序时原则是让代码更容易阅读并且结构更加具有逻辑性,但是有时却频繁编写着相同的代码。如果能够把这些相同的代码组织起来,作为一个整体,哪里用到就调用到哪里,那样会更加方便。函数就实现了这样的功能,它能够将这些代码模块化,使其代码结构清晰组成一个完整的
。
1.定义和调用函数
函数是代表一组语句的标识符,它能够实现程序模块化的策略。要完成一个模块化的策略就需要定义一个函数。在PHP中定义函数的语法如下:
function function_name($arg_1,$arg_2,$arg_n)
{
code 函数需要执行的代码;
return 返回的值;
}
function 声明自定义函数
function_name 创建函数的名称,是有效的PHP标识符。函数名称是唯一的,其命名遵守与变量命名相同的规则,只是不能以“$”开头。
$arg 传递给函数的值,可以有多个参数,中间用逗号分隔,参数的类型不必指定,在调用函数时只要是PHP支持的类型都可以使用。
code 函数被调用时执行的代码,要使用大括号“{}”括起来。
return 将调用的代码需要的值返回,并结束函数的运行。
当函数被定义好后,所要做的就是调用这个函数。调用函数的操作很简单,只需要引用函数名并赋予正确的参数即可完成函数的调用。
例子:定义函数
2.在函数间传递参数
在调用函数时,需要向函数传递参数,被传入的参数称为实参,而函数定义的参数为形参。参数传递方式有:按值传递、按引用传递两种
· 按值传递
将实参的值复制到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回后,实参的值不会改变。
例子:按值传递
";
echo "在函数外\$m=".$m;//此时$m这个参数是在函数外的为实参。
//$m是局部变量!函数内外是不同的变量!!!
?>
· 按引用传递
实参的内存地址传递形参中,在函数内部的所有操作都会影响到实参的值,即返回后,实参的值会相应的发生变化。传值时只需要在原基础上加“&”即可。
例子:按引用传递
";
}
$m=1;
exam(&$m);//将$m的内存地址传递到形参中
echo "在函数外\$m=$m";
?>
· 可选参数
还有一种设置参数的方式,即可选参数。可以指定某个参数为可选参数,将可选参数放在参数列表末尾,并且指定其默认值为空。
例子:默认参数
";
}
value(100,0.25);
value(100);
?>
3.函数的返回值
在前面的小节中,详细的介绍了如何定义和调用一个函数,并且介绍了如何在函数间传递值,这里介绍函数的返回值。通常函数将返回值传递给调用者的方式有两种:使用关键字return()返回单个值和使用list()语言结构返回多个值。
· return()函数
return()将函数的值返回给函数的调用者。
注意:如果在全局作用域内使用return(),那么将终止脚本的执行。
例子: return()
";
}
return $b;
//由于上边使用了return,所以会终止下面代码的运行。
value(100,0.25);
value(100);
?>
return()语句只能返回一个参数,就是说只能返回一个值,不能一次返回多个。如果要返回多个结果,就要在函数中定义一个数组,将返回值存储在数组中返回。
· List()函数
通过list()语言结构可以从函数中返回多个值,主要功能是用数组中的元素为一组变量赋值。
语法:void list(mixed varname,mixed…)
像array()一样,list()不是真正的函数,而是语言结构。list()用一步操作给一组变量进行赋值。
注意:list()仅能用于数字索引的数组并假定数字索引从0开始。
例子:list()返回多个值
";
//通过list()函数返回数组中的多个值
function example()
{
$value[]="ASP";
$value[]="jsp";
$value[]="admin";
return $value;//返回一个数组
}
list($php,$mysql,$apache)=example();//运行函数利用函数返回的数组$value给list中的三个变量赋值(一一对应)
echo "$php*$mysql*$apache"."
";
?>
本节重点
什么事PHP运算符?运算符有哪几种?
运算符是用来对变量、常量或数据进行计算的符号;它对一个值或一组值执行一个指定的操作。
PHP运算符包括:算术运算符、赋值运算符、逻辑运算符、比较运算符、字符串运算符、递增递减运算符、位运算符、执行运算符、错误控制运算符
===和!==与==和!=的区别?
$a===$b,说明$a和$b不只是数值上相等,而且两者的类型也一样。
$a!==$b,就是说$a和$b或者数值不等,或者类型不等。
三元运算符
三元运算符(?:)
三元运算符用于根据一个表达式在另两个表达式中选择一个,而不是用来在两个语句或者程序中选择。三元运算符最好放在括号里。
@错误屏蔽适用的场合
经常在程序中使用的某些函数出现一些不必要(不影响程序运行的错误)的错误信息时,使用该运算符进行屏蔽。针对程序中的一些影响程序运行的错误,使用它不是解决问题的根本办法,不推荐使用。
运算符的优先级技巧
这么多的级别,如果要都记住不太现实,也没有必要。如果写的表达式真的很复杂,而且包含较多的运算符,不妨多加点()
PHP表达式
表达式是构成PHP程序语言的基本元素,也是PHP最重要的组成元素。在PHP语言中,几乎所写的任何东西都是表达式。最基本的表达式形式就是常量和变量。
注意:在编写程序时,应该注意表达式后面的这个分号,不要漏写,这是一个出现频率很高的错误点。
定义和调用函数
function_name 创建函数的名称,是有效的PHP标识符。函数名称是唯一的,其命名遵守与变量命名相同的规则,只是不能以“$”开头。
$arg 传递给函数的值,可以有多个参数,中间用逗号分隔,参数的类型不必指定,在调用函数时只要是PHP支持的类型都可以使用。
code 函数被调用时执行的代码,要使用大括号“{}”括起来。
return 将调用的代码需要的值返回,并结束函数的运行。
当函数被定义好后,所要做的就是调用这个函数。调用函数的操作很简单,只需要引用函数名并赋予正确的参数即可完成函数的调用。
注意:在PHP中,函数可以在被调用之前定义,也可以在被调用之后定义。
函数的传参方式有几种?是什么?
· 按值传递
将实参的值复制到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回后,实参的值不会改变。
· 按引用传递
实参的内存地址传递形参中,在函数内部的所有操作都会影响到实参的值,即返回后,实参的值会相应的发生变化。传值时只需要在原基础上加“&”即可。
可选参数
还有一种设置参数的方式,即可选参数。可以指定某个参数为可选参数,将可选参数放在参数列表末尾,并且指定其默认值为空。
函数的返回值有几种方式?
通常函数将返回值传递给调用者的方式有两种:使用关键字return()返回单个值和使用list()语言结构返回多个值。