PHP 運算子
本章節我們將討論 PHP 中不同運算子的應用。
在 PHP 中,賦值運算子 = 用來給變數賦值。
在 PHP 中,算術運算子 + 用來把值加在一起。
PHP 算術運算子
#以下實例示範了使用不同算術運算子得到的不同結果:
實例
<?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。
下列實例示範了使用不同賦值運算子所得到的不同結果:
實例
<?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 $x=10; echo ++$x; // 输出11 $y=10; echo $y++; // 输出10 $z=5; echo --$z; // 输出4 $i=5; echo $i--; // 输出5 ?>
PHP 比較運算子
##比較運算子可以讓您比較兩個值:以下實例示範了使用一些比較運算子得到的不同結果:實例<?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 邏輯運算子
以下實例示範了使用一些陣列運算子得到的不同結果:實例<?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); ?>
三元運算子
另一個條件運算子是"?:"(或三元)運算子。 語法格式(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'; echo $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.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的運算符號
運算元 運算子 運算元
## 1 + , = == ===
##三元運算子 1 ? : 3
#算術運算子 + - * / % ++ --
## 值運算#比較運算符號 > < == >= <= === != !==
#位元運算子 && || | ^ ~ >> <<
其他原算子 ? : @ -> =>
PHP的算術運算子
+ php中的+號只做運算## 無特別處
/ 除數不能為0
%(求模) 小數不做求模 php自動將小數轉成整數求模,負數決定第一個數
+ + (自增)
$a=5
$a++ 先用在加上
++$a 先加在用
<?php $a=5; //5 7 $b=$a++ + ++$a; echo $b; echo '<br>'; echo $a; ?>
-- (自減)
$a=5
$a-- 先用在加上
--$a 先加在用
<?php $a=5; $b=$a-- - --$a; echo $b; //2 echo '<br>'; echo $a;//3>
PHP的賦值運算子
基本的賦值運算子是「=」。一開始可能會以為它是“等於”,其實不是的。它實際上意味著把右邊表達式的值賦給左邊的運算數。
賦值運算式的值也就是所賦得的值。也就是說,「$a = 3」的值是 3。這樣就可以做些小技巧: <?php
$a = ($b = 4) + 5; // $a 現在變成 9,而 $b 則變成了 4。
1.比較後的結果是一個boolean值,用在if和while等語句中
#4>3 true
==
===全等,不僅內容要相同,而且兩個運算元的型別也要相等.
<?PHP $a = 7.00; $b= 7; var_dump($a===$b); ?>
能看出區別。
<?PHP $a = 7.00; $b= 7; var_dump($a==$b); ?>
PHP的邏輯運算子
特性:短路
##&& and || or範例:$a = 1; $a==1 || $c = 100; //邏輯或的運算結果是運算子(||)的兩邊只要有一個為真,結果就回傳「真」後來就不再執行其它表達式,所以在這個語句裡已經判斷到$a的返回值是“真”,就不再執行給$c賦值,這樣就形成了一個短路現象,所以後面的輸出語句不輸出內容。 $a==2 && $c=100; //邏輯與的運算子(&&),邏輯與的運算方式是運算子的兩邊表達式都為「真」才會繼續執行其他語句而直接回傳一個「假」值,所以這條語句也會不會執行$c的賦值。 echo '$c的值:'.$c;
PHP的三元運算子
運算元 ? 運算元 :運算元條件 ? 語句 : 語句條件 ? 表達式 : 表達式一!二:三如果"一"的條件如果成立,則指向"二",否則執行"三"$a =8 ;$sun = false ? $a +5+6 :"00000000";echo $sun;