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