PHP运算符

算术运算符

加减乘除取余,整除

<?php
$x=13;
$y=2;
echo ($x+$y);//加:15
echo "\n";
echo ($x-$y);//减:11
echo "\n";
echo ($x*$y);//乘:26
echo "\n";
echo ($x/$y);//除:6.5
echo "\n";
echo ($x%$y);//取余:1
echo "\n";
var_dump(intdiv(10, 3));//整除运算符intdiv():int(3)
?>

  

赋值运算符

左操作数被设置为右侧表达式的值

<?php
$x=10;
echo $x;//10
echo "\n";

$y=20;
echo $y +=100;//120
echo "\n";

$z=50;
echo $z -=30;//20
echo "\n";

$i=5;
echo $i *=6;//30
echo "\n";

$j=10;
echo $j /=5;//2
echo "\n";

$k=15;
echo $k /=4;//3
echo "\n";
?>

运算符组合实例

<?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 "\n";
var_dump($x === $y);//绝对等于,输出false
echo "\n";
var_dump($x != $y);//不等于,输出false
echo "\n";
var_dump($x !== $y);绝对不等于,输出true
echo "\n";

$a=50;
$b=90;

var_dump($a > $b);//false
echo "\n";
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 "\n";
$e = ($a + $b) * $c;  // 使用括号
echo $e;
echo "\n";
?>

  

posted on 2017-11-21 22:23  aisy绍  阅读(181)  评论(0编辑  收藏  举报

导航