您現(xiàn)在的位置是:首頁 >php教程 >php教程七 運(yùn)算符網(wǎng)站首頁php教程
php教程七 運(yùn)算符
PHP 運(yùn)算符
在 PHP 中,賦值運(yùn)算符 = 用于給變量賦值。
在 PHP 中,算術(shù)運(yùn)算符 + 用于把值加在一起。
PHP 算術(shù)運(yùn)算符
運(yùn)算符 | 名稱 | 描述 | 實(shí)例 | 結(jié)果 |
---|---|---|---|---|
x+x | 加 | 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 | 模(除法的余數(shù)) | x 除以 y 的余數(shù) | 5 % 2 10 % 8 10 % 2 | 1 2 0 |
-x | 設(shè)置負(fù)數(shù) | 取 x 的相反符號(hào) | <?php $x = 2; echo -$x; ?> | -2 |
~x | 取反 | x 取反,按二進(jìn)制位進(jìn)行"取反"運(yùn)算。運(yùn)算規(guī)則: ~1=-2; ~0=-1; | <?php $x = 2; echo ~$x; ?> | -3 |
a . b | 并置 | 連接兩個(gè)字符串 | "Hi" . "Ha" | HiHa |
以下實(shí)例演示了使用不同算術(shù)運(yùn)算符得到的不同結(jié)果:
<?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
echo '<br>'; // 換行
echo -$x;
?>
PHP 賦值運(yùn)算符
運(yùn)算符 等同于 描述 x = y x = y 左操作數(shù)被設(shè)置為右側(cè)表達(dá)式的值 x += y x = x + y 加 x -= y x = x - y 減 x *= y x = x * y 乘 x /= y x = x / y 除 x %= y x = x % y 模(除法的余數(shù)) a .= b a = a . b 連接兩個(gè)字符串
以下實(shí)例演示了使用不同賦值運(yùn)算符得到的不同結(jié)果:
<?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é)果:
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 輸出Hello world!
$x="Hello";
$x .= " world!";
echo $x; // 輸出Hello world!
?>
PHP 遞增/遞減運(yùn)算符
運(yùn)算符 名稱 描述 ++ x 預(yù)遞增 x 加 1,然后返回 x x ++ 后遞增 返回 x,然后 x 加 1 -- x 預(yù)遞減 x 減 1,然后返回 x x -- 后遞減 返回 x,然后 x 減 1
<?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)算符 名稱 描述 實(shí)例 x == y 等于 如果 x 等于 y,則返回 true 5==8 返回 false x === y 絕對(duì)等于 如果 x 等于 y,且它們類型相同,則返回 true 5==="5" 返回 false x != y 不等于 如果 x 不等于 y,則返回 true 5!=8 返回 true x <> y 不等于 如果 x 不等于 y,則返回 true 5<>8 返回 true x !== y 不絕對(duì)等于 如果 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
以下實(shí)例演示了使用一些比較運(yùn)算符得到的不同結(jié)果:
<?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)算符
運(yùn)算符 名稱 描述 實(shí)例 x and y 與 如果 x 和 y 都為 true,則返回 true x=6
y=3
(x < 10 and y > 1) 返回 truex or y 或 如果 x 和 y 至少有一個(gè)為 true,則返回 true x=6
y=3
(x= =6 or y= =5) 返回 truex xor y 異或 如果 x 和 y 有且僅有一個(gè)為 true,則返回 true x=6
y=3
(x= =6 xor y= =3) 返回 falsex && y 與 如果 x 和 y 都為 true,則返回 true x=6
y=3
(x < 10 && y > 1) 返回 truex或 y 或 如果 x 和 y 至少有一個(gè)為 true,則返回 true x=6
y=3
(x= =5或 y= =5) 返回 false! x 非 如果 x 不為 true,則返回 true x=6
y=3
!(x==y) 返回 true
備注:||或符號(hào)csdn表格中沒法填入會(huì)被轉(zhuǎn)義 還有= =中間加了空格因?yàn)椴患邮菢?biāo)記文本沒法存在==
PHP 數(shù)組運(yùn)算符
運(yùn)算符 名稱 描述 x + y 集合 x 和 y 的集合 x == y 相等 如果 x 和 y 具有相同的鍵/值對(duì),則返回 true x === y 恒等 如果 x 和 y 具有相同的鍵/值對(duì),且順序相同類型相同,則返回 true x != y 不相等 如果 x 不等于 y,則返回 true x <> y 不相等 如果 x 不等于 y,則返回 true x !== y 不恒等 如果 x 不等于 y,則返回 true
以下實(shí)例演示了使用一些數(shù)組運(yùn)算符得到的不同結(jié)果:
<?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)算符 。
<?php
// 普通寫法
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
echo $username, PHP_EOL;
// PHP 5.3+ 版本寫法
$username = $_GET['user'] ?: 'nobody';
echo $username, PHP_EOL;
//在 PHP7+ 版本多了一個(gè) NULL 合并運(yùn)算符 ??,實(shí)例如下:
// 如果 $_GET['user'] 不存在返回 'nobody',否則返回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 類似的三元運(yùn)算符
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
運(yùn)算符優(yōu)先級(jí)
下表按照優(yōu)先級(jí)從高到低列出了運(yùn)算符。同一行中的運(yùn)算符具有相同優(yōu)先級(jí),此時(shí)它們的結(jié)合方向決定求值順序。
說明:左 = 從左到右,右 = 從右到左。
結(jié)合方向 運(yùn)算符 附加信息 無 clone new clone 和 new 左 [ array() 右 ++ -- ~ (int) (float) (string) (array) (object) (bool) @ 類型和遞增/遞減 無 instanceof 類型 右 ! 邏輯運(yùn)算符 左 * / % 算術(shù)運(yùn)算符 左 + – . 算術(shù)運(yùn)算符和字符串運(yùn)算符 左 << >> 位運(yùn)算符 無 == != === !== <> 比較運(yùn)算符 左 & 位運(yùn)算符和引用 左 ^ 位運(yùn)算符 左 位 位運(yùn)算符 左 && 邏輯運(yùn)算符 左 或 邏輯運(yùn)算符 左 ? : 三元運(yùn)算符 右 = += -= *= /= .= %= &= = ^= <<= >>= => 左 and 邏輯運(yùn)算符 左 xor 邏輯運(yùn)算符 左 or 邏輯運(yùn)算符 左 , 多處用到
備注:表格中'或'字代表|| ,’位‘字代表 | 。因?yàn)閏sdn表格是md形式|會(huì)被轉(zhuǎn)義沒有辦法填寫
運(yùn)算符優(yōu)先級(jí)中,or 和 ||,&& 和 and 都是邏輯運(yùn)算符,效果一樣,但是其優(yōu)先級(jí)卻不一樣。
<?php
// 優(yōu)先級(jí): && > = > and
// 優(yōu)先級(jí): || > = > or
$a = 3;
$b = false;
$c = $a or $b;
var_dump($c); // 這里的 $c 為 int 值3,而不是 boolean 值 true
$d = $a || $b;
var_dump($d); //這里的 $d 就是 boolean 值 true
?>
代碼輸出結(jié)果:
int(3)
bool(true)
括號(hào)的使用
我們通過括號(hào)的配對(duì)來明確標(biāo)明運(yùn)算順序,而非靠運(yùn)算符優(yōu)先級(jí)和結(jié)合性來決定,通常能夠增加代碼的可讀性。
<?php
// 括號(hào)優(yōu)先運(yùn)算
$a = 1;
$b = 2;
$c = 3;
$d = $a + $b * $c;
echo $d;
echo "
";
$e = ($a + $b) * $c; // 使用括號(hào)
echo $e;
echo "
";
?>
以上實(shí)例輸出結(jié)果為:
7
9