运算符
PHP运算符可以根据操作数的个数分为一元运算符、二元运算符、三元运算符。一元运算符例如!
(取反运算符)或++
(加一运算符),PHP支持的大多数运算符都是这种二元运算符,例如+
、-
、*
、/
等算数运算符,而三元运算符只有一个(?:
)。另外按运算符的功能去分类,可以分为:算术运算符、字符串运算符、赋值运算符、比较运算符、逻辑运算符、位运算符和其他运算符。
算数运算符
运算符 | 含义 | 书写格式 |
+ | 加法运算 | $a+$b |
- | 减法运算 | $a-$b |
* | 乘法运算 | $a*$b |
/ | 除法运算 | $a/$b |
% | 取除法余数运算 | $a%$b |
++ | 自增1,例如$a++,其实是$a=$a+1 | $a++ |
-- | 自减1,例如$a--,其实是$a=$a-1 | $a-- |
在算数运算符中,有个几乎所有程序都拥有的递增和递减规则,如下所示:
$a++
先计算表达式的值,然后自身加1$a--
先计算表达式的值,然后自身减1++$a
先自身加1,然后计算表达式的值--$a
先自身减1,然后计算表达式的值
Demo
<?php
$count=1;
echo $count++; //这一行打印出1
echo ++$count; //这一行打印出3
?>
字符串运算符
在PHP中字符串运算符只有一个,是英文的句号("."),也称为连接运算符。这个运算符不仅可以将两个字符串连接起来,变成合并的新字符串,也可以将一个字符串和任何标量数据类型相连接,合并成的都是新的字符串。
Demo
<?php
$name = "Kevin"; //定义一个人的名字为字符串类型
$age = 22; //定义一个人的年龄为整型
$height = 1.85; //定义一个人的身高为浮点型
//将以上不同类型的变量使用点操作符和字符串连接起来,一起输出
echo "我的名字是:".$name.",我的年龄是:".$age.",我的身高".$height."米。"."<br>";
?>
赋值运算符
=
将一个值或表达式的结果赋值给变量+=
将变量与所赋的值相加后的结果再赋给该变量-=
将变最与所赋的值相减后的结果再赋给该变量*=
将变最与所赋的值相乘后的结果再赋给该变量/=
将变最与所赋的值相除后的结果再赋给该变量%=
将变最与所赋的值相除取余后的结果再赋给该变量.=
将变最与所赋的值相连后的结果再赋给该变量
Demo
<?php
$a = $b = $c = $d = 20; //$a、$b、$c、$d的值都为20
$a += 5; //等价于 $a = $a+5;
$b -= 5; //等价于 $b = $b-5;
$c *= 5; //等价于 $c = $c*5;
$d /= 5; //等价于 $d = $d/5;
$e %= 5; //等价于 $e = $e%5;
$result="结果是:";
$result .= "$a自加5以后的值为: ${a},";
$result .= "$b自减5以后的值为: ${b},";
$result .= "$c自乘5以后的值为: ${c},";
$result .= "$d自除5以后的值为: ${d},";
$result .= "$e自除5取余以后的值为: ${e}。";
echo $result; //输出全部相连后的字符串结果
?>
比较运算符
>
大于,当左边操作数大于右边操作数时返回TRUE
.否则返回FALSE
<
小于,当左边操作数小于右边操作数时返回TRUE
.否则返回FALSE
>=
大于等于,当左边操作数大于等于右边操作数时返回TRUE
.否则返回FALSE
<=
小于等于,当左边操作数小于等于右边操作数时返回TRUE
.否则返回FALSE
==
等于,当左边操作数等于右边操作数时返回TRUE
.否则返回FALSE
===
全等于,当左边操作数等于右边操作数,并且他们的类型也相同时返回TRUE
.否则返回FALSE
<>
或!=
不等于,当左边操作数不等于右边操作数时返回TRUE
.否则返回FALSE
!==
不全等于,当左边操作数不等于右边操作数或者两者类型不相等的时候返回TRUE
.否则返回FALSE
Demo
<?php
$a=1; //声明一个整型变量$a值为1
var_dump( $a > 1); //比较的结果为bool(false),1不大于1
var_dump( $a < true ); //比较的结果为bool(false),ture会自动转为1,1等于1
var_dump( $a >= 0.01 ); //比较的结果为bool(true),1大于0.01
var_dump( $a <= "0.10yuan" ); //比较的结果为bool(false),“0.10yuan”会自动转成0.10再比较
var_dump( $a == 1 ); //比较的结果为bool(true),1等于1
var_dump( $a == "1" ); //比较的结果为bool(true),“1”会自动转为1再比较,相等
var_dump( $a === "1" ); //比较的结果为bool(false),内容虽然相同,但不是同一类型的值
var_dump( $a === 1 ); //比较的结果为bool(true),内容相同,类型也相同
var_dump( $a <> 1 ); //比较的结果为bool(false),1等于1,所以为假
var_dump( $a != 1 ); //比较的结果为bool(false),同上
var_dump( $a != 0 ); //比较的结果为bool(true),1不等于0
var_dump( $a !== "1" ); //比较的结果为bool(true),虽然内容相同,但类型不同
?>
逻辑运算符
PHP提供了4种逻辑运算符:逻辑与(and
或&&
)、逻辑或(or
或||
)、逻辑非(not
或!
)和异或(xor
)。
- 逻辑与:逻辑与表示“并且”的关系,两边的表达式必须都为
TRUE
,结果才能为真,否则整个表达式为假。 - 逻辑或:逻辑或表示“或者”的关系,两边的表达式只要有一个为
TRUE
,结果就为真,否则整个表达式为假。 - 逻辑非:逻辑非表示“取反”的关系,如果表达式为
TRUE
,结果就变为FALSE
,如果表达式为FALSE
,结果则为TRUE
。 - 逻辑异或:逻辑异或在运算时两边的表达式不同时为
TRUE
才为TRUE
,即必须是一边为TRUE,一边为FALSE
。两边的表达式相同时,不管是都是TRUE
还是都为FALSE
,结果都为FALSE
。
Demo
$username = "apple"; //将用户名apple保存在变量$username中
$password = "123456"; //将用户密码123456保存在变量$password中
$email = "apple@163.com"; //将用户电子邮件apple@163.com保存在变量$email中
$phone = "400-7654321"; //将用户电话400-7654321保存在变量$phone中
//使用一个“逻辑与”运算符,和比较运算符一起使用共同作为条件判断
if( $username == "apple" && $password == "123456" ) {
echo "用户名和密码输入正确";
}
//使用一个多个“逻辑或”运算符,和比较运算符一起使用共同作为条件判断
if( $username == "" || $password == "" || $email == "" || $phone == "" ) {
echo "所有的值一个都不能为空";
}
//多个不同的逻辑运算符混合使用,和返回boolean值函数一起使用作为条件判断
if( (isset($email) && !empty($email)) || (isset($phone) && !empty($phone)) ) {
echo "最少有一种联系方式";
}
三元运算符
?:
可以提供简单的逻辑判断,在PHP中三元运算符就此一根独苗。等价于条件语句if...else...
.其语法格式如下所示:(exprl)? (expr2):(expr3)
。其含义是在exprl
求值为TRUE
时,执行?
和:
之间的expr2
并获取其值,在exprl
求值为FALSE
时,执行:
之后的expr3
并获取其值。
Demo
<?php
$money=100;
$result=$money>200?"好有钱":"没钱花了";
//输出没钱花了
echo $result;
?>
关于位运算符,在日常的程序中不常用,笔者不再做相关赘述,用兴趣的童鞋自行去百度一下吧。