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í)例會(huì)輸出:
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)算符
比較操作符可以讓您比較兩個(gè)值:
以下實(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)算符
另一個(gè)條件運(yùn)算符是"?:"(或三元)運(yùn)算符 。
語(yǔ)法格式
(expr1) ? (expr2) : (expr3)
對(duì) expr1 求值為 TRUE 時(shí)的值為 expr2,在 expr1 求值為 FALSE 時(shí)的值為 expr3。
自 PHP 5.3 起,可以省略三元運(yùn)算符中間那部分。表達(dá)式 expr1 ?: expr3 在 expr1 求值為 TRUE 時(shí)返回 expr1,否則返回 expr3。
實(shí)例
以下實(shí)例中通過判斷 $_GET 請(qǐng)求中含有 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 是一個(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?????????? +????????? 1
一元運(yùn)算符? +1?? -1?? ++? --? !
二元運(yùn)算符?? +?? -??? *?? /? %? ><??? =?? ==? ===
三元運(yùn)算符? 1? ??? :?? 3
算術(shù)運(yùn)算符號(hào)? +?? -? *?? /?? %? ++? --
賦值運(yùn)算符號(hào)?? -? +=? -=? *=? /=? %=
比較運(yùn)算符號(hào)? >?? <?? ==? >=? <=? ===? !=?? !==
邏輯運(yùn)算符號(hào)?? &&? ||?? !
位運(yùn)算符?? &?? |? ^?? ~? >>? <<
其他原算符?? ?? :? @?? ->?? =>
?PHP的算術(shù)運(yùn)算符
+?? php中的+號(hào)只做運(yùn)算
-??? 無特別處
/??? 除數(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)算符是“=”。一開始可能會(huì)以為它是“等于”,其實(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é)果是一個(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
例:$a = 1; ??????? $a==1?|| $c = 100; //邏輯或的運(yùn)算結(jié)果是運(yùn)算符(||)的兩邊只要有一個(gè)為真,結(jié)果就返回“真”后就不再執(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ǔ)句也將不執(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;