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