php完全自學手冊登入
php完全自學手冊
作者:php.cn  更新時間:2022-04-15 13:53:54

PHP 運算符




這一章我們將討論 PHP 中不同運算子的應用。

在 PHP 中,賦值運算子 = 用來給變數賦值。

在 PHP 中,算術運算子 + 用來把值加在一起。


PHP運算子有哪些?

php運算子包含算數運算子、賦值運算子、遞增\遞減運算子、比較運算子、陣列運算子、三元運算子、組合比較子。


PHP 算術運算子

##5 - 23x * y乘x 和y 的積5 * 210x / y除x 和y 的商x % y10 % 82##- x #取反x 取反- 2-2a . b並置連接兩個字串"Hi" . "Ha"#HiHa

以下實例示範了使用不同算術運算子得到的不同結果:

實例

<?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 
?>

##執行實例»點擊"運行實例" 按鈕查看線上實例

PHP7+ 版本新增整除運算子

intdiv(),使用實例:

##< ;?php
var_dump(intdiv(10, 3));
?>

以上實例會輸出:

int(3)
PHP 賦值運算子

在PHP 中,基本的賦值運算子是"="。它意味著左操作數被設定為右側表達式的值。也就是說,"$x = 5" 的值是 5。

#運算子描述 實例結果
x + y#加上x 和y 的和 2 + 24
x - yx 和y 的差異
##15 / 5 3
模式(除法的餘數)x 除以y 的餘數5 % 210 % 2

#1
0


運算子##x = yx = y左運算元被設定為右側表達式的值#x += y##x = x + y#x = x - y##x *= yx /= y##x = x / y除x %= yx = x % y模式(除法的餘數)a .= ba = a . b#連接兩個字串以下實例示範了使用不同賦值運算子得到的不同結果:
等同於#描述
加上x -= y
x = x * y

實例

#
<?php 
$x=10; 
echo $x; // 输出10
echo "<br>";
$y=20; 
$y += 100;
echo $y; // 输出120
echo "<br>";
$z=50;
$z -= 25;
echo $z; // 输出25
echo "<br>";
$i=5;
$i *= 6;
echo $i; // 输出30
echo "<br>";
$j=10;
$j /= 5;
echo $j; // 输出2
echo "<br>";
$k=15;
$k %= 4;
echo $k; // 输出3
?>

執行實例»
##點擊"運行實例" 按鈕查看線上實例
以下實例示範了使用不同字串運算子得到的不同結果:

實例

<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出Hello world! 
echo "<br>";
$x="Hello";
$x .= " world!";
echo $x; // 输出Hello world! 
?>

運行實例»
點擊"運行實例" 按鈕查看線上實例

PHP 遞增/遞減運算子


#運算子名稱##預遞增##預遞增#x 加1,然後回傳xx ++#後遞增回來x,然後x 加1-- x預遞減x 減1,然後回傳x
描述++ x
##++ x
##x --後遞減返回x,然後x 減1

以下實例示範了使用遞增/遞減運算子得到的結果:

實例

<?php
$x=10; 
echo ++$x; // 输出11
echo "<br>";
$y=10; 
echo $y++; // 输出10
echo "<br>";
$z=5;
echo --$z; // 输出4
echo "<br>";
$i=5;
echo $i--; // 输出5
?>

##執行實例»點擊"運行實例" 按鈕查看線上實例


PHP 比較運算子

比較運算子可以讓您比較兩個值:

運算子名稱描述#實例##x == yx === yx != yx <> y##x !== yx > yx < y
等於如果x 等於y,則回傳true5==8 回傳false
恆等於如果x 等於y,且它們型別相同,則傳回true#5==="5" 傳回false
不等於如果x 不等於y,則傳回true5!=8 回傳true
不等於如果x 不等於y,則回傳true#5<>8 傳回true
不恆等於如果x 不等於y,或它們型別不相同,則傳回true#5! =="5" 傳回true
#大於如果x 大於y,則傳回true 5>8 回傳false
小於######如果x 小於y,則傳回true########5< 8 回傳true############x >= y######大於等於######如果x 大於或等於y,則傳回true###### 5>=8 回傳false############x <= y######小於等於######如果x 小於或等於y,則傳回true### ###5<=8 回傳true#############

以下實例示範了使用一些比較運算子得到的不同結果:

實例

#
<?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 yy=3x or y y=3x xor yy=3x && yy=3x || yy=3!! xy=3
名稱描述實例
如果x 和y 都為true ,則傳回truex=6(x < 10 and y > 1) 傳回true

如果x 和y 至少有一個為true,則傳回truex=6(x==6 or y==5) 傳回true

#異或如果x 和y 有且只有一個為true,則傳回truex=6(x==6 xor y==3) 回傳false

如果x 和y 都為true,則傳回truex=6(x < 10 && y > 1)傳回true

#如果x 和y 至少有一個為true,則傳回true x=6(x==5 || y==5) 回傳false

如果x 不為true,則傳回truex=6!(x==y) 傳回true

#PHP 陣列運算子

運算子##說明##x + y集合x 和y 的集合x == y#相等如果x 和y 有相同的鍵/值對,則傳回truex === y恆等#如果x 和y 具有相同的鍵/值對,且順序相同型別相同,則傳回truex != y不相等如果x 不等於y,則回傳truex <> y不相等
名稱
###如果x 不等於y,則傳回true ############x !== y######不恆等#######如果x 不等於y,則傳回true######### ###

以下實例示範了使用一些陣列運算子得到的不同結果:

實例

<?php
$x = array("a" => "red", "b" => "green"); 
$y = array("c" => "blue", "d" => "yellow"); 
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
echo "<br>";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x <> $y);
echo "<br>";
var_dump($x !== $y);
?>

##執行實例»點擊"運行實例" 按鈕查看線上實例


三元運算子

另一個條件運算子是"?:"(或三元)運算符。

語法格式

(expr1) ? (expr2) : (expr3)
對expr1 求值為TRUE 時的值為expr2,在expr1 求值為FALSE 時的值為expr3。

自 PHP 5.3 起,可以省略三元運算子中間那部分。表達式 expr1 ?: expr3 在 expr1 求值為 TRUE 時傳回 expr1,否則回傳 expr3。

實例

下列實例中透過判斷$_GET 要求中含有user 值,如果有回傳$_GET['user'],否則傳回nobody:

<?php
$test = 'php中文網';
// 普通寫法
$username = isset($test) ? $test : 'nobody';#username, PHP_EOL ;

// PHP 5.3+ 版本寫法
$username = $test ?: 'nobody';
echo $username, PHP_EOL;
?>

>

##php中文網
php中文網

注意:

PHP_EOL 是一個換行符,相容於更大平台。 在PHP7+ 版本多了一個NULL 合併運算符,實例如下:

<?php
// 如果 $_GET['user'] 不存在回傳 ' nobody',否則傳回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 類似的三元運算子
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>

組合比較子(PHP7+)

PHP7+ 支援組合比較符,實例如下:

<?php
// 整數
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

#// 浮點型
echo 1.500<

// 浮點型數
echo 1.55;lt; ; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
//cho 字串「#」/cho a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

?>

#

PHP中文網