PHP 運算符

在 PHP 中,賦值運算子 = 用來為變數賦值。

在 PHP 中,算術運算子 + 用來把值加在一起。

PHP 算術運算子

PHP 算數運算子
PHP 算術運算子


PHo

##+          加號                            $x + $y                  $x - $y    

*           $x - $y    

*           乘號,乘以        

/           除號,除以                    $x / $y    

##% 1# 了使用不同算術運算子得到的不同結果:

實例

<?php 
$x = 10; 
$y = 6;
echo ($x + $y); // 输出16
echo ($x - $y); // 输出4
echo ($x * $y); // 输出60
echo ($x / $y); // 输出1.6666666666667 
echo ($x % $y); // 输出4 
?>

試試看»

PHP7+ 版本新增整除運算子 intdiv(),在這裡了解一下。使用實例:

<?php 
var_dump(intdiv(10, 3)); 
?>

以上實例會輸出:

int(3)

PHP 賦值運算子

在PHP 中,基本的賦值運算子是"="。它意味著左操作數被設定為右側表達式的值。也就是說,"$x = 5" 的值是 5。

符號         

舉例              等價式

=             $x = $y         左操作數被設定為右邊表達式的值   


+=          $x += $y       $x = $x + $y 

-##o y        $x = $x - $y    

##*=           $x *= $y       $x = $x *= $y       $x 中 $x = $y        $x = $x / $y    

%=         $x %= $y       $x = $x % $y    

 $x . $y    

以下實例示範了使用不同賦值運算子得到的不同結果:

實例

<?php 
$x = 10; 
echo $x; // 输出10
$y = 20; 
$y += 100;
echo $y; // 输出120
$z = 50;
$z -= 25;
echo $z; // 输出25
$i = 5;
$i *= 6;
echo $i; // 输出30
$j = 10;
$j /= 5;
echo $j; // 输出2
$k = 15;
$k %= 4;
echo $k; // 输出3
?>

嘗試»

#

以下實例示範了使用不同字串運算子得到的不同結果:

實例

<?php
$a = "Hello";
$b = $a . " world!";
echo $b; //输出Hello world! 
$x = "Hello";
$x .= " world!";
echo $x; // 输出Hello world! 
?>

嘗試»

PHP 遞增/遞減運算符

運算子1,然後返回x    x ++            後增加          返回x,然後x x 減1,然後回x    
#x --              後遞減          回復x,然後x 減1    

下列實例示範了使用遞增運算子所嘗試的結果:#rr#re#re##re##re##re#一下»

PHP 比較運算子

##比較運算子可以讓您比較兩個值:

運算子            

名稱             

#說明                                                       

實例

##x == y                                                    5= =8 回傳false    

x === y          恆等於          x 等於y,且它們類型相同,則回復   

x != y              不等於          若x 不等於y,則回傳true                  5!=8 回傳true    

x <> y            不等於           如果x 不等於y,則回復true                    5<>8 回傳true    

x !== y           不恆定等於        若x 不等於y,或它們類型不相同,則回傳true                  5!=="5" 回傳true    

##x > y                                                                     若x 小於y,則回傳true                                                    大於等於       若x 大於或等於y,則回傳true                如果x 大於或等於y,則回傳true  ;= y             小於等於       若x 小於或等於y,則回傳true                  ##以下實例示範了使用一些比較運算子得到的不同結果:

實例

<?php
$x = 10; 
echo ++$x; // 输出11  
$y = 10; 
echo $y++; // 输出10  
$z = 5;
echo --$z; // 输出4  
$i = 5;
echo $i--; // 输出5
?>

試試看»

PHP 邏輯運算子

運算                                                 之後配備作用

##實例

x and y         邏輯與              x 與y 皆為true,則回傳true               c 10 and y > 1 ) 回傳true    x or y            

x or y            

x or y            

x or y            時或                

x xor y          邏輯異或               邏輯異或            中點和y 且只有一個為true,則傳回true       x=6 y=3   (x==6) x  #x && y         邏輯與              如果x 與y 皆為true,則回傳true                 true    

x || y             邏輯或              若x且y 至少有一個為true,則回傳true           x=6   y=3  (x==5 || y==5) 回傳false    

! x   true,則回傳true x=6   y=3  !(x==y) 回傳true    

下面舉幾個例子:

邏輯與

<?php
$x = 100; 
$y = "100";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x !== $y);
echo "<br>";
$a = 50;
$b = 90;
var_dump($a > $b);
echo "<br>";
var_dump($a < $b);
?>

邏輯或

<?php 
$x = true; 
$y = false; 
//逻辑与(并且),要求两个都为true才执行真区间,所以代码中执行假区间 
if($x && $y){ 
echo '执行了真区间'; 
}else{ 
echo '执行了假区间'; 
} 
?>
邏輯非
<?php 
$x = true; 
$y = false; 
//逻辑或,有一个为真则为真 
if($x || $y){ 
echo '执行了真区间'; 
}else{ 
echo '执行了假区间'; 
} 
?>

PHP 陣列運算子#x + y             集合              x 與y 的集合   

 鍵/值對,則傳回true    
x === y       恆等              如果x 與y 相同的鍵/值對,且順序相同類型相同,則回傳true    

#  != y  則回傳true    

x <> y         相等           若x 不等於y,則回傳true    

x !== y    則為 如果為 如果無恆等# 則返回不恆等於x以下實例示範了使用一些陣列運算子得到的不同結果:

實例

<?php 
$y = false; 
//逻辑非,把false变为了true 
if(!$y){ 
echo '执行了真区间'; 
}else{ 
echo '执行了假区间'; 
} 
?>

#嘗試»

三元運算子

另一個條件運算子是"?:"(或三元)運算子。

語法格式

(expr1) ? (expr2) : (expr3)

對expr1 求值為TRUE 時的值為 expr2,在expr1 求值為FALSE 時的值為expr3。

可以寫成:$x? 真程式碼片段(只能寫一句程式碼): 假程式碼片段(只能寫一句程式碼);

自PHP 5.3 起,可以省略三元運算符中間那部分。表達式 expr1 ?: expr3 在 expr1 求值為 TRUE 時傳回 expr1,否則回傳 expr3。

實例

以下實例中透過判斷$_GET 請求中含有user 值,如果有傳回$_GET['user'],否則傳回nobody:

$_GET 變量將會在PHP 表單中講解參考 PHP $_GET 變數

<?php
$x = array("a" => "red", "b" => "green"); 
$y = array("c" => "blue", "d" => "yellow"); 
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>

注意:PHP_EOL 是一個換行符,相容於更大平台。

在PHP7+ 版本多了一個NULL 合併運算符,實例如下:

<?php 
$test = 'php中文网'; 

//普通写法 
$username = isset($test) ? $test : 'nobody'; 
echo $username, PHP_EOL; //输出 php中文网

// PHP 5.3+ 版本写法 
$username = $test ?: 'nobody'; 
echo $username, PHP_EOL; //输出 php中文网
?>

組合比較符(PHP7+)

PHP7+ 支援組合比較符,實例如下:

<?php 
// 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值 
$username = $_GET['user'] ?? 'nobody'; 
// 类似的三元运算符 
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; 
?>

運算子的優先權

運算子的優先權是一個非常複雜的規則,可以參考http://php.net/manual/zh/language.operators.precedence.php 無需死記硬背,

我們只需要了解常用的規則即可,從高到底:

++、--(遞增遞減)

!邏輯非

乘除運算高於加減運算(先乘除後加減)

#比較運算子(先計算再比較)

邏輯運算子(比較的結果做邏輯運算)

繼續學習
||
<?php $x = 10; $y = 6; echo ($x + $y); // 输出16 echo "<br>"; echo ($x - $y); // 输出4 echo "<br>"; echo ($x * $y); // 输出60 echo "<br>"; echo ($x / $y); // 输出1.6666666666667 echo "<br>"; echo ($x % $y); // 输出4 ?>