算术运算符
加减乘除取余,整除
<?php $x=13; $y=2; echo ($x+$y);//加:15 echo " "; echo ($x-$y);//减:11 echo " "; echo ($x*$y);//乘:26 echo " "; echo ($x/$y);//除:6.5 echo " "; echo ($x%$y);//取余:1 echo " "; var_dump(intdiv(10, 3));//整除运算符intdiv():int(3) ?>
赋值运算符
左操作数被设置为右侧表达式的值
<?php $x=10; echo $x;//10 echo " "; $y=20; echo $y +=100;//120 echo " "; $z=50; echo $z -=30;//20 echo " "; $i=5; echo $i *=6;//30 echo " "; $j=10; echo $j /=5;//2 echo " "; $k=15; echo $k /=4;//3 echo " "; ?>
运算符组合实例
<?php $a = "Hello"; $b = $a . " world!"; echo $b; // 输出Hello world! $x="Hello"; $x .= " world!"; echo $x; // 输出Hello world! ?>
PHP递增/递减运算符
<?php $x=10; echo ++$x; // 先加1,后返回值,输出11 $y=10; echo $y++; // 先输出,后加,所以输出10 $z=5; echo --$z; // 先减掉1,才输出的是4 $i=5; echo $i--; // 先输出,后面再减所以是5 ?>
PHP比较运算符
<?php $x=100; $y="100"; var_dump($x == $y);//等于,输出true echo " "; var_dump($x === $y);//绝对等于,输出false echo " "; var_dump($x != $y);//不等于,输出false echo " "; var_dump($x !== $y);绝对不等于,输出true echo " "; $a=50; $b=90; var_dump($a > $b);//false echo " "; var_dump($a < $b);//true ?>
PHP逻辑运算符
<?php $x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $z = $x + $y; // $x 和 $y 数组合并 var_dump($z);//输出 /*array(4) { ["a"]=> string(3) "red" ["b"]=> string(5) "green" ["c"]=> string(4) "blue" ["d"]=> string(6) "yellow" }*/ var_dump($x == $y);//输出false var_dump($x === $y);//恒等,输出false var_dump($x != $y);//不等于,输出true var_dump($x <> $y);//不相等,输出true var_dump($x !== $y);//绝对不等于,输出true ?>
三元运算符
语法格式:(expr1) ? (expr2) : (expr3)
PHP_EOL 是一个换行符,兼容更大平台。
如果有返回 $_GET['user'],否则返回 nobody:
<?php $test = 'syshao'; // 普通写法 $username = isset($test) ? $test : 'nobody'; echo $username, PHP_EOL;//输出syshao // PHP 5.3+ 版本写法 $username = $test ?: 'nobody'; echo $username, PHP_EOL;//输出syshao ?>
在 PHP7+ 版本多了一个 NULL 合并运算符 ??
<?php // 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值 $username = $_GET['user'] ?? 'nobody'; // 类似的三元运算符 $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; ?>
组合比较符(PHP7+)
<?php // 整型 echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 // 浮点型 echo 1.5 <=> 1.5; // 0 echo 1.5 <=> 2.5; // -1 echo 2.5 <=> 1.5; // 1 // 字符串 echo "a" <=> "a"; // 0 echo "a" <=> "b"; // -1 echo "b" <=> "a"; // 1 ?>
运算符优先级
<?php // 优先级: && > = > and // 优先级: || > = > or $a = 3; $b = false; $c = $a or $b; var_dump($c);// 这里的 $c 为 int 值3,而不是 boolean 值 true,输出int(3) $d = $a || $b; var_dump($d);//这里的 $d 就是 boolean 值 true,输出true ?>
括号优先运算符
<?php // 括号优先运算 $a = 1; $b = 2; $c = 3; $d = $a + $b * $c; echo $d; echo " "; $e = ($a + $b) * $c; // 使用括号 echo $e; echo " "; ?>