php運(yùn)算符
PHP 運(yùn)算符
本章節(jié)我們將討論 PHP 中不同運(yùn)算符的應(yīng)用。
在 PHP 中,賦值運(yùn)算符 = 用于給變量賦值。
在 PHP 中,算術(shù)運(yùn)算符 + 用于把值加在一起。
PHP 算術(shù)運(yùn)算符
以下實(shí)例演示了使用不同算術(shù)運(yùn)算符得到的不同結(jié)果:
實(shí)例
<?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+ 版本新增整除運(yùn)算符 intdiv(),使用實(shí)例: <?php var_dump(intdiv(10, 3)); ?>
以上實(shí)例會輸出:
int(3)
PHP 賦值運(yùn)算符
在 PHP 中,基本的賦值運(yùn)算符是 "="。它意味著左操作數(shù)被設(shè)置為右側(cè)表達(dá)式的值。也就是說,"$x = 5" 的值是 5。
以下實(shí)例演示了使用不同賦值運(yùn)算符得到的不同結(jié)果:
實(shí)例
<?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 ?>
以下實(shí)例演示了使用不同字符串運(yùn)算符得到的不同結(jié)果:
實(shí)例
<?php $a = "Hello"; $b = $a . " world!"; echo $b; // 輸出Hello world! $x="Hello"; $x .= " world!"; echo $x; // 輸出Hello world! ?>
以下實(shí)例演示了使用遞增/遞減運(yùn)算符得到的結(jié)果:
實(shí)例
<?php $x=10; echo ++$x; // 輸出11 $y=10; echo $y++; // 輸出10 $z=5; echo --$z; // 輸出4 $i=5; echo $i--; // 輸出5 ?>
PHP 比較運(yùn)算符
比較操作符可以讓您比較兩個值:
以下實(shí)例演示了使用一些比較運(yùn)算符得到的不同結(jié)果:
實(shí)例
<?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 邏輯運(yùn)算符
以下實(shí)例演示了使用一些數(shù)組運(yùn)算符得到的不同結(jié)果:
實(shí)例
<?php $x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $z = $x + $y; // $x 和 $y 數(shù)組合并 var_dump($z); var_dump($x == $y); var_dump($x === $y); var_dump($x != $y); var_dump($x <> $y); var_dump($x !== $y); ?>
三元運(yùn)算符
另一個條件運(yùn)算符是"?:"(或三元)運(yùn)算符 。
語法格式
(expr1) ? (expr2) : (expr3)
對 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3。
自 PHP 5.3 起,可以省略三元運(yùn)算符中間那部分。表達(dá)式 expr1 ?: expr3 在 expr1 求值為 TRUE 時返回 expr1,否則返回 expr3。
實(shí)例
以下實(shí)例中通過判斷 $_GET 請求中含有 user 值,如果有返回 $_GET['user'],否則返回 nobody:
<?php $test = 'php中文網(wǎng)'; // 普通寫法 $username = isset($test) ? $test : 'nobody'; echo $username, PHP_EOL; // PHP 5.3+ 版本寫法 $username = $test ?: 'nobody'; echo $username, PHP_EOL; ?>
php中文網(wǎng)
注意:PHP_EOL 是一個換行符,兼容更大平臺。
在 PHP7+ 版本多了一個 NULL 合并運(yùn)算符,實(shí)例如下:
<?php
// 如果 $_GET['user'] 不存在返回 'nobody',否則返回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 類似的三元運(yùn)算符
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
組合比較符(PHP7+)
PHP7+ 支持組合比較符,實(shí)例如下:
<?php // 整型 echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 // 浮點(diǎn)型 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的運(yùn)算符號
運(yùn)算元 運(yùn)算符 運(yùn)算元
1 + 1
一元運(yùn)算符 +1 -1 ++ -- !
二元運(yùn)算符 + - * / % >< = == ===
三元運(yùn)算符 1 ? : 3
算術(shù)運(yùn)算符號 + - * / % ++ --
賦值運(yùn)算符號 - += -= *= /= %=
比較運(yùn)算符號 > < == >= <= === != !==
邏輯運(yùn)算符號 && || !
位運(yùn)算符 & | ^ ~ >> <<
其他原算符 ? : @ -> =>
PHP的算術(shù)運(yùn)算符
+ php中的+號只做運(yùn)算
- 無特別處
/ 除數(shù)不能為0
%(求模) 小數(shù)不做求模 php自動把小數(shù)轉(zhuǎn)成整數(shù)求模,負(fù)數(shù)決定第一個數(shù)
++ (自增)
$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的賦值運(yùn)算符
基本的賦值運(yùn)算符是“=”。一開始可能會以為它是“等于”,其實(shí)不是的。它實(shí)際上意味著把右邊表達(dá)式的值賦給左邊的運(yùn)算數(shù)。
賦值運(yùn)算表達(dá)式的值也就是所賦的值。也就是說,“$a = 3”的值是 3。這樣就可以做一些小技巧: <?php
$a = ($b = 4) + 5; // $a 現(xiàn)在成了 9,而 $b 成了 4。
PHP的比較運(yùn)算符
1.比較后的結(jié)果是一個boolean值,用在if和while等語句中
4>3 true
==
===全等,不僅內(nèi)容要相同,而且兩個運(yùn)算元的類型也要相等.
<?PHP $a = 7.00; $b= 7; var_dump($a===$b); ?>
能看出區(qū)別。
<?PHP $a = 7.00; $b= 7; var_dump($a==$b); ?>
PHP的邏輯運(yùn)算符
特性:短路
&& and
|| or
例:$a = 1; $a==1 || $c = 100; //邏輯或的運(yùn)算結(jié)果是運(yùn)算符(||)的兩邊只要有一個為真,結(jié)果就返回“真”后就不再執(zhí)行其它表達(dá)式,所以在這個語句里已經(jīng)判斷到$a的返回值是“真”,就不再執(zhí)行給$c賦值,這樣就形成了一個短路現(xiàn)象,所以后面的輸出語句不輸出內(nèi)容。
$a==2 && $c=100; //邏輯與的運(yùn)算符(&&),邏輯與的運(yùn)算方式是運(yùn)算符的兩邊表達(dá)式都為“真”才會繼續(xù)執(zhí)行其他語句而直接返回一個“假”值,所以這條語句也將不執(zhí)行$c的賦值。
echo '$c的值:'.$c;
PHP的三元運(yùn)算符
運(yùn)算元 ? 運(yùn)算元 :運(yùn)算元
條件 ? 語句 : 語句
條件 ? 表達(dá)式 : 表達(dá)式
一!二 :三
如果"一"的條件如果成立,則指向"二",否則執(zhí)行"三"
$a =8 ;
$sun = false ? $a +5+6 :"00000000";
echo $sun;