国产网曝门99视频在线看_免费看片a级毛片免费看_4hu四虎永久在线观看_高清无套内精线观看456_国产欧美亚洲日韩久久福利_av在线无码观看另类重口_欧美精品一二三区较多收藏_欧美老熟妇伦视频_婷婷六月综合激情_最新国产成人野战在线观看


PHP8的運算符-PHP8知識詳解

導(dǎo)讀:本節(jié)主要的知識點有:運算符優(yōu)先級、算術(shù)運算符、賦值運算符、位運算符、比較運算符、錯誤控制運算符、執(zhí)行運算符、遞增/遞減運算符、邏輯運算符、字符串運算符、數(shù)組運算符、類型運算符、三元運算符。

運算符是可以通過給出的一或多個值(用編程行話來說,表達式)來產(chǎn)生另一個值(因而整個結(jié)構(gòu)成為一個表達式)的東西。

PHP8的運算符有很多,按類型分有一元運算符二元運算符、三元運算符

一元運算符只對一個表達式執(zhí)行操作,只能接受一個值,例如 !(邏輯取反運算符)或 ++(遞增運算符)。 

二元運算符用于兩個操作數(shù)之間,可接受兩個值,例如熟悉的算術(shù)運算符 +(加)和 -(減),大多數(shù) PHP 運算符都是這種。

三元運算符用在三個操作數(shù)之間,可接受三個值,列如唯一的三元運算符 ? :。

本節(jié)主要的知識點有:運算符優(yōu)先級、算術(shù)運算符、賦值運算符位運算符、比較運算符、錯誤控制運算符、執(zhí)行運算符、遞增/遞減運算符、邏輯運算符字符串運算符、數(shù)組運算符、類型運算符、三元運算符。


一、運算符優(yōu)先級

php8 的運算符完整列表見下面運算符優(yōu)先級。解釋了運算符優(yōu)先級和結(jié)合方向,這控制著在表達式包含有若干個不同運算符時究竟怎樣對其求值。

運算符優(yōu)先級指定了兩個表達式綁定得有多“緊密”。例如,表達式 1 + 5 * 3 的結(jié)果是 16 而不是 18 是因為乘號(“*”)的優(yōu)先級比加號(“+”)高。必要時可以用括號來強制改變優(yōu)先級。例如:(1 + 5) * 3 的值為 18。

如果運算符優(yōu)先級相同,那運算符的結(jié)合方向決定了該如何運算。例如,"-"是左聯(lián)的,那么 1 - 2 - 3 就等同于 (1 - 2) - 3 并且結(jié)果是 -4. 另外一方面,"="是右聯(lián)的,所以 $a = $b = $c 等同于 $a = ($b = $c)。

沒有結(jié)合的相同優(yōu)先級的運算符不能連在一起使用,例如 1 < 2 > 1 在PHP是不合法的。但另外一方面表達式 1 <= 1 == 1 是合法的, 因為 == 的優(yōu)先級低于 <=。

關(guān)聯(lián)性僅對二(三)元操作符有意義。 一元操作符是前綴或者后綴,所以不適用該概念。 例如 !!$a 僅可分為 !(!$a)。

括號的使用,哪怕在不是必要的場合下,通過括號的配對來明確標明運算順序,而非靠運算符優(yōu)先級和結(jié)合性來決定,通常能夠增加代碼的可讀性。

下表按照優(yōu)先級從高到低列出了運算符。同一行中的運算符具有相同優(yōu)先級,此時它們的結(jié)合方向決定求值順序。



二、算術(shù)運算符

1、+$a , 標識運算, 根據(jù)情況將 $a 轉(zhuǎn)化為 int 或 float。

2、-$a ,取反運算, $a 的負值。

3、$a + $b, 加法運算, $a 和 $b 的和。

4、$a - $b, 減法運算, $a 和 $b 的差。

5、$a * $b, 乘法運算, $a 和 $b 的積。

6、$a / $b, 除法運算, $a 除以 $b 的商。

7、$a % $b, 取模運算, $a 除以 $b 的余數(shù)。

8、$a ** $b, 求冪運算, $a 的 $b次方的值。

示例:

<?php
echo (5 % 3);    // 打印 2
echo "<br>";     //換行顯示
echo (5 % -3);   // 打印 2
echo "<br>";     //換行顯示
echo (-5 % 3);   // 打印 -2
echo "<br>";     //換行顯示
echo (-5 % -3);  // 打印 -2
?>

運行結(jié)果如下:

2
2
-2
-2


三、賦值運算符

賦值運算符的作用是把一定的數(shù)值加載給特定的變量?;镜馁x值運算符是“=”。即把右邊表達式的值賦給左邊的運算數(shù)(變量)。

3.1、算術(shù)賦值運算符 

1、$a += $b, 等同于 $a = $a + $b ,加法運算符

2、$a -= $b,  等同于 $a = $a - $b ,減法運算符

3、$a *= $b, 等同于 $a = $a * $b ,乘法運算符

4、$a /= $b, 等同于 $a = $a / $b ,除法運算符

5、$a %= $b,等同于  $a = $a % $b, 取模運算符

6、$a **= $b ,等同于  $a = $a ** $b ,指數(shù)運算符

3.2、位賦值運算符

1、$a &= $b, 等同于$a = $a & $b, 按位與

2、$a |= $b, 等同于$a = $a | $b ,按位或

3、$a ^= $b ,等同于$a = $a ^ $b ,按位異或

4、$a <<= $b,等同于 $a = $a << $b, 左移

5、$a >>= $b ,等同于$a = $a >> $b, 右移

3.3、其他賦值運算符

1、$a .= $b, 等同于$a = $a . $b ,字符串拼接

2、$a ??= $b, 等同于$a = $a ?? $b ,NULL 合并

四、位運算符

位運算符允許對整型數(shù)中指定的位進行求值和操作。

1、$a & $b ,And(按位與), 將把 $a 和 $b 中都為 1 的位設(shè)為 1。

2、$a | $b ,Or(按位或), 將把 $a 和 $b 中任何一個為 1 的位設(shè)為 1。

3、$a ^ $b ,Xor(按位異或), 將把 $a 和 $b 中一個為 1 另一個為 0 的位設(shè)為 1。

4、~ $a Not,(按位取反), 將 $a 中為 0 的位設(shè)為 1,反之亦然。

5、$a << $b, Shift left(左移), 將 $a 中的位向左移動 $b 次(每一次移動都表示“乘以 2”)。

6、$a >> $b, Shift right(右移), 將 $a 中的位向右移動 $b 次(每一次移動都表示“除以 2”)。

要用括號確保想要的優(yōu)先級。例如 $a & $b == true 先進行比較再進行按位與;而 ($a & $b) == true 則先進行按位與再進行比較。

位移在 PHP 中是數(shù)學(xué)運算。向任何方向移出去的位都被丟棄。左移時右側(cè)以零填充,符號位被移走意味著正負號不被保留。右移時左側(cè)以符號位填充,意味著正負號被保留。

如果 &、 | 和 ^ 運算符的左右兩個操作對象都是字符串,將對會組成字符串的字符 ASCII 值執(zhí)行操作,結(jié)果也是一個字符串。除此之外,兩個操作對象都將 轉(zhuǎn)換為整數(shù) ,結(jié)果也將會是整數(shù)。

如果 ~ 運算符的操作對象是字符串,則將對組成字符串的字符 ASCII 值進行操作, 結(jié)果將會是字符串,否則操作對象和結(jié)構(gòu)都會是整數(shù)。

<< 和 >> 運算符的操作對象和結(jié)果始終都是整數(shù)。

五、比較運算符

比較運算符,如同它們名稱所暗示的,允許對兩個值進行比較。

1、$a == $b ,等于, true,如果類型轉(zhuǎn)換后 $a 等于 $b。

2、$a === $b, 全等于, true,如果 $a 等于 $b,并且它們的類型也相同。

3、$a != $b ,不等, true,如果類型轉(zhuǎn)換后 $a 不等于 $b。

4、$a <> $b ,不等 ,true,如果類型轉(zhuǎn)換后 $a 不等于 $b。

5、$a !== $b ,不全等 ,true,如果 $a 不等于 $b,或者它們的類型不同。

6,、$a < $b, 小于, true,如果 $a 嚴格小于 $b。

7、$a > $b, 大于, true,如果 $a 嚴格大于 $b。

8、$a <= $b, 小于等于, true,如果 $a 小于或者等于 $b。

9,、$a >= $b, 大于等于, true,如果 $a 大于或者等于 $b。

10、$a <=> $b, 太空船運算符(組合比較符), 當$a小于、等于、大于 $b時 分別返回一個小于、等于、大于0的 int 值。

六、錯誤控制運算符

PHP 支持一個錯誤控制運算符“@”。當將其放置在一個 PHP 表達式之前,該表達式可能產(chǎn)生的任何錯誤診斷都被抑制。

七、執(zhí)行運算符

PHP 支持一個執(zhí)行運算符:反引號(``)。注意這不是單引號!PHP 將嘗試將反引號中的內(nèi)容作為 shell 命令來執(zhí)行,并將其輸出信息返回(即,可以賦給一個變量而不是簡單地丟棄到標準輸出)。使用反引號運算符“`”的效果與函數(shù) shell_exec() 相同。

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

注意:

1、關(guān)閉了 shell_exec() 時反引號運算符是無效的。

2、與其它某些語言不同,反引號不能在雙引號字符串中使用。

八、遞增/遞減運算符

PHP 支持 C 風(fēng)格的前/后遞增與遞減運算符。

1、++$a, 前加: $a 的值加一,然后返回 $a。

2、$a++ ,后加: 返回 $a,然后將 $a 的值加一。

3、--$a ,前減 :$a 的值減一, 然后返回 $a。

4、$a-- ,后減 :返回 $a,然后將 $a 的值減一。

九、邏輯運算符

一個編程語言最重要的功能之一就是進行邏輯判斷和運算,比如邏輯與、邏輯或、邏輯非、邏輯異或。

1、$a and $b ,And(邏輯與): true,如果 $a 和 $b 都為 true。

2、$a or $b, Or(邏輯或): true,如果 $a 或 $b 任一為 true。

3、$a xor $b, Xor(邏輯異或): true,如果 $a 或 $b 任一為 true,但不同時是。

4、! $a, Not(邏輯非): true,如果 $a 不為 true。

5、$a && $b ,And(邏輯與): true,如果 $a 和 $b 都為 true。

6、$a || $b, Or(邏輯或): true,如果 $a 或 $b 任一為 true。

十、字符串運算符

有兩個字符串(string)運算符。第一個是連接運算符(“.”),它返回其左右參數(shù)連接后的字符串。第二個是連接賦值運算符(“.=”),它將右邊參數(shù)附加到左邊的參數(shù)之后。

<?php
$a = "你好";      //給變量$a賦值
$b = $a . "PHP8"; //現(xiàn)在 $b 包含 "你好 PHP8"
echo $b;          //輸出變量$b
echo "<br>";      //換行顯示
$a = "你好";      //給變量$a賦值
$a .= "PHP8";     //現(xiàn)在 $a 包含 "你好 PHP8"
echo $a;          //不打引號輸出變量$a
echo "<br>";      //換行顯示
echo '$a';        //打單引號輸出變量$a
echo "<br>";      //換行顯示
echo "$a";        //打雙引號輸出變量$a
?>

運行結(jié)果如下:

你好PHP8
你好PHP8
$a
你好PHP8

溫馨提醒,對于字符串型數(shù)據(jù)輸出,可以使用單引號,也可以使用雙引號,也可以不使用引號。

使用單引號和雙引號輸出同一個變量,結(jié)果是不同的。單引號輸出的是字符串,雙引號和不帶引號輸出的是變量的值。

十一、數(shù)組運算符

1、$a + $b ,聯(lián)合: $a 和 $b 的聯(lián)合。

2、$a == $b ,相等 :如果 $a 和 $b 具有相同的鍵/值對則為 true。

3、$a === $b ,全等: 如果 $a 和 $b 具有相同的鍵/值對并且順序和類型都相同則為 true。

4、$a != $b, 不等 :如果 $a 不等于 $b 則為 true。

5、$a <> $b, 不等 :如果 $a 不等于 $b 則為 true。

6、$a !== $b, 不全等: 如果 $a 不全等于 $b 則為 true。

+ 運算符把右邊的數(shù)組元素附加到左邊的數(shù)組后面,兩個數(shù)組中都有的鍵名,則只用左邊數(shù)組中的,右邊的被忽略。

數(shù)組中的單元如果具有相同的鍵名和值則比較時相等。

十二、類型運算符

使用instanceof 來進行實例引用。

1、確定一個 PHP 變量是否屬于某一類 class 的實例:

<?php
class MyClass
{
}

class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

以上示例會輸出:

bool(true)
bool(false)

2、確定一個變量是不是繼承自某一父類子類的實例:

<?php
class parentClass
{
}

class MyClass extends ParentClass
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

以上示例會輸出:

bool(true)
bool(true)

3、檢查一個對象是否不是某個類的實例

<?php
class MyClass
{
}

$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

以上示例會輸出:

bool(true)

4、用于確定一個變量是不是實現(xiàn)了某個接口的對象的實例

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

以上示例會輸出:

bool(true)
bool(true)

十三、三元運算符

三元運算符是一種在編程中常用的條件語句,也被稱為三目運算符或條件運算符。它通常用于簡化條件判斷和賦值操作。

在PHP8中,三元運算符“?:”被稱為“三元運算符”或“三目運算符”,其語法格式為:

條件表達式 ? 表達式1 : 表達式2

其中,條件表達式為一個布爾表達式,如果該表達式的值為真,則返回表達式1的值;如果該表達式的值為假,則返回表達式2的值。

例如,以下是一個使用三元運算符的示例:

<?php
$a = "99>88";      
$b = $a ?: "100不大于99"; 
$c = $a ? "100大于99" : "100不大于99"; 
echo $b;  
echo "<br>";  
echo $c;          
?>

運行結(jié)果如下:

99>88
100大于99

到此為止,本文主要講解的運算符優(yōu)先級、算術(shù)運算符、賦值運算符、位運算符、比較運算符、錯誤控制運算符、執(zhí)行運算符、遞增/遞減運算符、邏輯運算符、字符串運算符、數(shù)組運算符、類型運算符、三元運算符就講解完畢了,大家慢慢參考學(xué)習(xí)。



本文地址:http://003188.cn/php8deyunsuanfu.html
碼字不易,打個賞唄
楊澤業(yè)感謝你的支持!

猜你喜歡