日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php类型优先级_PHP: 运算符优先级 - Manual

發布時間:2025/3/21 php 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php类型优先级_PHP: 运算符优先级 - Manual 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

運算符優先級

運算符優先級指定了兩個表達式綁定得有多“緊密”。例如,表達式 1 + 5 *

3 的結果是 16 而不是 18

是因為乘號(“*”)的優先級比加號(“+”)高。必要時可以用括號來強制改變優先級。例如:(1

+ 5) * 3 的值為 18。

如果運算符優先級相同,那運算符的結合方向決定了該如何運算。例如,"-"是左聯的,那么 1 - 2 - 3 就等同于 (1 - 2) - 3

并且結果是 -4. 另外一方面,"="是右聯的,所以 $a = $b = $c 等同于

$a = ($b = $c)。

沒有結合的相同優先級的運算符不能連在一起使用,例如

1 < 2 > 1 在PHP是不合法的。但另外一方面表達式

1 <= 1 == 1 是合法的, 因為 == 的優先級低于

<=。

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

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

結合方向

運算符

附加信息

不適用

clone

new

不適用

++

--

~

(int)

(float)

(string)

(array)

(object)

(bool)

@

instanceof

<<

>>

<

<=

>

>=

==

!=

===

!==

<>

<=>

=

+=

-=

*=

**=

/=

.=

%=

&=

|=

^=

<<=

>>=

??=

不適用

yield from

不適用

yield

不適用

print

示例 #1 結合方向

$a=3*3%5;//?(3?*?3)?%?5?=?4

//?ternary?operator?associativity?differs?from?C/C++$a=true?0:true?1:2;//?(true???0?:?true)???1?:?2?=?2$a=1;$b=2;$a=$b+=3;//?$a?=?($b?+=?3)?->?$a?=?5,?$b?=?5?>

Operator precedence and associativity only determine how expressions

are grouped, they do not specify an order of evaluation. PHP does not

(in the general case) specify in which order an expression is evaluated

and code that assumes a specific order of evaluation should be avoided,

because the behavior can change between versions of PHP or depending on

the surrounding code.

示例 #2 Undefined order of evaluation

$a=1;

echo$a+$a++;//?may?print?either?2?or?3$i=1;$array[$i]?=$i++;//?may?set?either?index?1?or?2?>

示例 #3 +、- 、. 具有相同的優先級

$x=4;//?this?line?might?result?in?unexpected?output:echo"x?minus?one?equals?".$x-1.",?or?so?I?hope\n";//?because?it?is?evaluated?like?this?line:echo?(("x?minus?one?equals?".$x)?-1)?.",?or?so?I?hope\n";//?the?desired?precedence?can?be?enforced?by?using?parentheses:echo"x?minus?one?equals?".?($x-1)?.",?or?so?I?hope\n";?>

以上例程會輸出:

-1, or so I hope

-1, or so I hope

x minus one equals 3, or so I hope

注意:

盡管 = 比其它大多數的運算符的優先級低,PHP

仍舊允許類似如下的表達式:if (!$a = foo()),在此例中

foo() 的返回值被賦給了 $a。

總結

以上是生活随笔為你收集整理的php类型优先级_PHP: 运算符优先级 - Manual的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。