PHP表达式
表达式是常量、变量和运算符的组合
表达式是PHP中的重要内容,PHP中几乎所有的东西都可以称为表达式
- $x=10;
- $y=($x=10);
- $y+=($x=10);
- $z=&$x;
- $condition?$true_item:$false_item;
PHP运算符
运算符是用来对数值或变量进行某种操作运算的符号。一般地说,运算符可以带有1个、2个或者更多个运算对象。他们之间也有先后顺序,具体内容包括
1、算术运算符
运算符 | 名称 | 结果 |
$a+$b | 加法 | $a和$b的和 |
$a-$b | 减法 | $a和$b的差 |
$a*$b | 乘法 | $a和$b的积 |
$a/$b | 除法 | $a除以$b的商 |
$a%$b | 求模 | $a除以$b的余数 |
2、递增/递减运算符
运算符 | 名称 | 结果 |
$a++ | 后加加 | $a的值先进行操作运算,后自增1 |
++$a | 前加加 | $a的值先自增1,后进行操作运算 |
$a-- | 后减减 | $a的值先进行操作运算,后递减1 |
--$a | 前减减 | $a的值先自增1,后进行操作运算 |
【示例】
- <?php
- echo $a=5 + "5th"; //输出:10
- echo 10 + $a++; //输出:20
- echo 5 - (--$a); //输出:-5
- ?>
<?php
echo $a=5 + "5th"; //输出:10
echo 10 + $a++; //输出:20
echo 5 - (--$a); //输出:-5
?>
3、比较运算符
运算符 | 名称 | 结果 |
$a==$b | 等于 | 如果$a等于$b,结果为true,反之false |
$a===$b | 全等 | 如果$a等于$b,并且类型也相同,结果为true,反之false |
$a!=$b | 不等 | 如果$a不等于$b,结果为true,反之false |
$a<>$b | 不等 | 如果$a不等于$b,结果为true,反之false |
$a!==$b | 非全等 | 如果$a不等于$b,并且类型也相同,结果为true,反之false |
$a<$b | 小于 | 如果$a小于$b,结果为true,反之false |
$a>$b | 大于 | 如果$a大于$b,结果为true,反之false |
$a<=$b | 小于等于 | 如果$a小于或者等于$b,结果为true,反之false |
$a>=$b | 大于等于 | 如果$a大于或者等于$b,结果为true,反之false |
【示例】
- <?php
- var_dump(0=="a"); //输出:bool(true)
- var_dump(0=="00"); //输出:bool(true)
- var_dump(0==="00"); //输出:bool(false)
- var_dump(0<>"abc"); //输出:bool(false)
- var_dump(0!=="00"); //输出:bool(true)
- ?>
<?php
var_dump(0=="a"); //输出:bool(true)
var_dump(0=="00"); //输出:bool(true)
var_dump(0==="00"); //输出:bool(false)
var_dump(0<>"abc"); //输出:bool(false)
var_dump(0!=="00"); //输出:bool(true)
?>
4、逻辑运算符
运算符 | 名称 | 结果 |
$a and $b | 逻辑与 | 如果$a与$b的结果都为true,整体结果为true,反之false |
$a or $b | 逻辑或 | 如果$a与$b的结果任意有一个为true,整体结果为true,反之false |
!$a | 逻辑非 | $a的值取反 |
$a && $b | 逻辑与 | 如果$a与$b的结果都为true,整体结果为true,反之false |
$a || $b | 逻辑或 | 如果$a与$b的结果任意有一个为true,整体结果为true,反之false |
$a xor $b | 逻辑异或 | $a和$b不同时,结果为true,反之false |
其中and与&&、or与||是同一逻辑运算符的两种写法
5、位运算
位运算符允许对整形数中的二进制对应位进行置位,如果是字符串,则将操作字符的ASCII值
运算符 | 名称 | 结果 |
$a&$b | 按位与 | 将$a和$b中对应位都为1的位设为1,其他设为0 |
$a|$b | 按位或 | 将$a或$b中为1的位设为1,对应位都为0的设为0 |
$a^$b | 按位异或 | 将$a和$b中不同的位设为1,相同的设为0 |
~$a | 按位非 | 将$a中的0设为1,反之1设为0 |
$a<<$b | 左移 | 将$a中的位向左移动$b次,每次移动相当于$a*2 |
$a>>$b | 右移 | 将$a中的位向右移动$b次,每次移动相当于$a/2 |
6、字符串连接
有两个字符串进行连接,使用连接运算符(.)点
7、引用
引用运算符&,可以在关联赋值中使用,赋值的变量就像一个别名,使得两个变量指向了相同的内存地址
【示例】
- <?php
- $a=5;
- $b=&$a;
- echo $b; //输出5
- $a=7;
- echo $b //输出7
- ?>
<?php
$a=5;
$b=&$a;
echo $b; //输出5
$a=7;
echo $b //输出7
?>
注意,通过unset()重置变量,是重置变量与内存的关联,所以思考下面的内容
- <?php
- $a=5;
- $b=&$a;
- echo $b; //输出5
- unset($a);
- echo $b; //输出什么?
- ?>
<?php
$a=5;
$b=&$a;
echo $b; //输出5
unset($a);
echo $b; //输出什么?
?>
上面重置了$a,但是不影响$b的操作,所以$b输出5
作者:马明
转载请注明出处,欢迎转载