這一章我們將討論 PHP 中不同運算子的應用。
在 PHP 中,賦值運算子 = 用來給變數賦值。
在 PHP 中,算術運算子 + 用來把值加在一起。
PHP運算子有哪些?
php運算子包含算數運算子、賦值運算子、遞增\遞減運算子、比較運算子、陣列運算子、三元運算子、組合比較子。
PHP 算術運算子
#運算子 | | 描述 | 實例 | 結果 |
---|
x + y | #加上 | x 和y 的和 | 2 + 2 | 4 |
x - y | 減 | x 和y 的差異 | ##5 - 2 | 3 |
x * y | 乘 | x 和y 的積 | 5 * 2 | 10 |
x / y | 除 | x 和y 的商##15 / 5 | 3 | |
x % y模式(除法的餘數) | x 除以y 的餘數 | 5 % 2 | 10 % 810 % 2
#1 | 20
| ##- x
#取反 | x 取反 | - 2 | -2 |
| a . b
並置 | 連接兩個字串 | "Hi" . "Ha" | #HiHa | | 以下實例示範了使用不同算術運算子得到的不同結果:
實例
<?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
?>
##執行實例»
點擊"運行實例" 按鈕查看線上實例
PHP7+ 版本新增整除運算子intdiv(),使用實例:
##< ;?phpvar_dump(intdiv(10, 3));
?>
以上實例會輸出:
int(3)PHP 賦值運算子
在PHP 中,基本的賦值運算子是"="。它意味著左操作數被設定為右側表達式的值。也就是說,"$x = 5" 的值是 5。
運算子等同於 | #描述 | | ##x = y
x = y | 左運算元被設定為右側表達式的值 | | #x += y
##x = x + y加上 | | x -= y |
#x = x - y減 | | |
##x *= yx = x * y | 乘 | |
x /= y##x = x / y | 除 | | x %= y
x = x % y | 模式(除法的餘數) | | a .= b
a = a . b | #連接兩個字串 | |
以下實例示範了使用不同賦值運算子得到的不同結果:
實例
#
<?php
$x=10;
echo $x; // 输出10
echo "<br>";
$y=20;
$y += 100;
echo $y; // 输出120
echo "<br>";
$z=50;
$z -= 25;
echo $z; // 输出25
echo "<br>";
$i=5;
$i *= 6;
echo $i; // 输出30
echo "<br>";
$j=10;
$j /= 5;
echo $j; // 输出2
echo "<br>";
$k=15;
$k %= 4;
echo $k; // 输出3
?>
執行實例»
##點擊"運行實例" 按鈕查看線上實例
以下實例示範了使用不同字串運算子得到的不同結果:
實例<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出Hello world!
echo "<br>";
$x="Hello";
$x .= " world!";
echo $x; // 输出Hello world!
?>
運行實例»
點擊"運行實例" 按鈕查看線上實例
PHP 遞增/遞減運算子
#運算子名稱描述 | | ++ x | ##預遞增
---|
| ##++ x | ##預遞增 | #x 加1,然後回傳x
| x ++ | #後遞增 | 回來x,然後x 加1
| -- x | 預遞減 | x 減1,然後回傳x
##x -- | 後遞減 | 返回x,然後x 減1 |
以下實例示範了使用遞增/遞減運算子得到的結果:
實例
<?php
$x=10;
echo ++$x; // 输出11
echo "<br>";
$y=10;
echo $y++; // 输出10
echo "<br>";
$z=5;
echo --$z; // 输出4
echo "<br>";
$i=5;
echo $i--; // 输出5
?>
##執行實例»
點擊"運行實例" 按鈕查看線上實例
PHP 比較運算子比較運算子可以讓您比較兩個值: 運算子 | 名稱 | 描述 | #實例 |
##x == y等於 | 如果x 等於y,則回傳true | 5==8 回傳false | |
x === y恆等於 | 如果x 等於y,且它們型別相同,則傳回true | #5==="5" 傳回false | |
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 | 5>8 回傳false | |
x < y
小於######如果x 小於y,則傳回true########5< 8 回傳true############x >= y######大於等於######如果x 大於或等於y,則傳回true###### 5>=8 回傳false############x <= y######小於等於######如果x 小於或等於y,則傳回true### ###5<=8 回傳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 and y與 | 如果x 和y 都為true ,則傳回true | x=6 | y=3(x < 10 and y > 1) 傳回true
|
x or y 或 | 如果x 和y 至少有一個為true,則傳回true | x=6 | y=3(x==6 or y==5) 傳回true
|
x xor y#異或 | 如果x 和y 有且只有一個為true,則傳回true | x=6 | y=3(x==6 xor y==3) 回傳false
|
x && y 與 | 如果x 和y 都為true,則傳回true | x=6 | y=3(x < 10 && y > 1)傳回true
|
x || y或 | #如果x 和y 至少有一個為true,則傳回true | x=6 | y=3(x==5 || y==5) 回傳false
|
!! x非 | 如果x 不為true,則傳回true | x=6 | y=3!(x==y) 傳回true
|
#PHP 陣列運算子
運算子名稱 | ##說明 | |
---|
| | |
| | | ##x + y
集合 | x 和y 的集合 | | x == y
#相等 | 如果x 和y 有相同的鍵/值對,則傳回true | | x === y
恆等 | #如果x 和y 具有相同的鍵/值對,且順序相同型別相同,則傳回true | | x != y
不相等 | 如果x 不等於y,則回傳true | | x <> y
不相等
###如果x 不等於y,則傳回true ############x !== y######不恆等#######如果x 不等於y,則傳回true######### ###以下實例示範了使用一些陣列運算子得到的不同結果:
實例
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
echo "<br>";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x <> $y);
echo "<br>";
var_dump($x !== $y);
?>
##執行實例»
點擊"運行實例" 按鈕查看線上實例
三元運算子另一個條件運算子是"?:"(或三元)運算符。 語法格式(expr1) ? (expr2) : (expr3)
對expr1 求值為TRUE 時的值為expr2,在expr1 求值為FALSE 時的值為expr3。 自 PHP 5.3 起,可以省略三元運算子中間那部分。表達式 expr1 ?: expr3 在 expr1 求值為 TRUE 時傳回 expr1,否則回傳 expr3。 實例下列實例中透過判斷$_GET 要求中含有user 值,如果有回傳$_GET['user'],否則傳回nobody: <?php
$test = 'php中文網';
// 普通寫法
$username = isset($test) ? $test : 'nobody';#username, PHP_EOL ;
// PHP 5.3+ 版本寫法
$username = $test ?: 'nobody';
echo $username, PHP_EOL;
?>
>
##php中文網注意:PHP_EOL 是一個換行符,相容於更大平台。 在PHP7+ 版本多了一個NULL 合併運算符,實例如下:
<?php// 如果 $_GET['user'] 不存在回傳 ' nobody',否則傳回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 類似的三元運算子
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
組合比較子(PHP7+)
PHP7+ 支援組合比較符,實例如下:
<?php// 整數
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
#// 浮點型
echo 1.500<
// 浮點型數
echo 1.55;lt; ; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
//cho 字串「#」/cho a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>
#