當前位置:首頁 » 編程語言 » php比優先順序

php比優先順序

發布時間: 2022-09-25 00:20:30

php 優先順序問題

php三元運算符的順序是從左向右的
原始 $a = $b < $c ? ($c-$b) ? 1 : ($b-$c) > 0 : ($b+$c) ? 0 : $b*$c;
先計算優先順序高於三元運算符的
$a = 20 < 40 ? 20 ? 1 : -20 > 0 : 60 ? 0 : 800;
$a = 0 ? 20 ? 1 : 0 : 60 ? 0 : 800;
然後從左測第一個可執行的三元運算開始執行 20 ? 1 : 0 為 1
$a = 0 ? 1 : 60 ? 0 : 800;
再從左測第一個可執行的三元運算開始執行 0 ? 1 : 60 為 60
$a = 60 ? 0 : 800;
最終
$a = 0
為了避免工作中出現這種情況,建議避免出現比較長的三元運算表達式

② php中的運算符優先順序是什麼樣的

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

運算符優先順序

結合方向

運算符

附加信息


clone new
clone 和 new


[
array()


**
算術運算符



++
--
~
(int)
(float)
(string)
(array)
(object)
(bool)
@

類型和遞增/遞減


instanceof

類型


!

邏輯運算符



*
/
%

算術運算符



+
-
.

算術運算符和字元串運算符



<<
>>

位運算符



<
<=
>
>=

比較運算符



==
!=
===
!==
<>
<=>

比較運算符


&

位運算符和引用


^

位運算符


|

位運算符


&&

邏輯運算符


||

邏輯運算符


??

比較運算符


? :

ternary

right

=
+=
-=
*=
**=
/=
.=
%=
&=
|=
^=
<<=
>>=

賦值運算符


and

邏輯運算符


xor

邏輯運算符


or

邏輯運算符

Example #1 結合方向

<?php
$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.

Example #2 Undefined order of evaluation

<?php
$a = 1;
echo $a + $a++; // may print either 2 or 3

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

Note:

盡管 = 比其它大多數的運算符的優先順序低,PHP
仍舊允許類似如下的表達式:if (!$a = foo()),在此例中
foo() 的返回值被賦給了 $a。

③ 關於php 三元運算符的優先順序問題。請教

三元運算符的優先順序是從右到左的,因此上面順序是:

$i = 2;
先運行:($i == 2 ? "A" : $i == 1)
然後再運行 (? 'B' : 'C';)
假設第一個運行的結果是 $ret 那麼$ret的值為A;
那麼第二個可以寫成
$ret?'B':'C';
因$ret的值為A,是真值,所以結果是B。

④ PHP函數比字串優先順序高嗎

functionmyfunc($argument){
echo$argument+10;
}
$variable=10;
echo"myfunc($variable)=".myfunc($variable);
//相當於
myfunc($variable);//就是直接的函數調用
echo"myfunc($variable)=";


functiontest(){}//沒有返回值就等於空字元
echo"myfunc($variable)=".test();

⑤ 關於php運算符優先順序問題

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

結合方向
運算符
附加信息

無 clone new clone 和 new
左 [ array()
右 ++ -- ~ (int) (float) (string) (array) (object) (bool) @ 類型和遞增/遞減
無 instanceof 類型
右 ! 邏輯運算符
左 * / % 算術運算符
左 + - . 算術運算符和字元串運算符
左 << >> 位運算符
無 == != === !== <> 比較運算符
左 & 位運算符和引用
左 ^ 位運算符
左 | 位運算符
左 && 邏輯運算符
左 || 邏輯運算符
左 ? : 三元運算符
右 = += -= *= /= .= %= &= |= ^= <<= >>= => 賦值運算符
左 and 邏輯運算符
左 xor 邏輯運算符
左 or 邏輯運算符
左 , 多處用到
對具有相同優先順序的運算符,左結合方向意味著將從左向右求值,右結合方向則反之。對於無結合方向具有相同優先順序的運算符,該運算符有可能無法與其自身結合。

⑥ php運算符中,優先順序從高到低分別是

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

⑦ php 關於運算優先順序。if($abc==3 && $bcd=4) 這一句,是先運算過程是怎麼樣。

首先說明&&的用法,且的意思,當且僅當前後連個語句都為真時,返回true
也就是說,如果第一個條件為假,不進行第二個語句的判斷或執行
如果第一個條件為真,則進行第二個語句的判斷或執行
更簡單的語句,如
<?php
$abc=3;
$abc==3&&$bcd=4
print $bcd;
?>
這個效果是一樣的!
在你這個例子里$abc == 3為真,則執行語句 $bcd = 4;將4賦值給變數$bcd
這個if語句塊等價於如下語句
if($abc==3&&4)
{
$bcd = 4;
print $bcd;
}

先計算$abc==3,因為==比&&,=優先順序都高 因為$abc==3成立所以等價於
if(1&&$bcd=4),先計算$bcd=4也就是賦值,然後將值作為&&的第二個條件,等價於
if(1&&4)這個是明顯成立的,執行裡面的語句 print $bcd輸出4
如果你將$bcd=0則等價於
if(1&&0)這個是不成立的,如果有else則執行else裡面的語句
if($abc==3&&$bcd=0)
{
print $bcd;
}
else
{
print $bcd;//在這里將輸出0
}

⑧ 請教php新手如何判斷同一行代碼的運行優先順序

echo
"已用空間:".($totalspace-$freespace);
這句是兩部分,那個點號是連接符
左邊是字元串,右邊是一個減法運算
如果不用括弧括起來,那麼,他就會變成「已用空間」和那個$totalspace連接起來再去減掉$freespace,那這樣根本就減不得。加括弧,只是為了使後面的運算為一部分,「已用空間」是一部分,這樣使用.號連接起來才是正確的。
不是php復雜,而是你想得太復雜!
echo
$totalspace-$freespace;
如果這樣,就不用加括弧了

⑨ php運算中優先順序從高到底

先乘除後加減,括弧優先順序最高

⑩ PHP運算符優先順序

10-3>2 為最高優先順序
相當於(10-3>2) ? 0 : true
而後 0 ? 5 : 3
0在計算機中被認為FLASE 因此答案是3
請給分,謝謝~

熱點內容
快吧我的世界盒子伺服器連接不上 發布:2025-01-09 01:36:11 瀏覽:380
搭建中轉雲伺服器挖礦 發布:2025-01-09 01:27:12 瀏覽:548
存儲過程中的for循環 發布:2025-01-09 01:25:38 瀏覽:859
阿里雲伺服器寬頻是專線嗎 發布:2025-01-09 01:22:42 瀏覽:602
上門修個密碼箱鎖多少錢 發布:2025-01-09 01:21:49 瀏覽:266
python企業培訓 發布:2025-01-09 01:17:14 瀏覽:889
怎樣存儲氣體 發布:2025-01-09 01:17:13 瀏覽:259
伺服器配套的台式電腦電腦 發布:2025-01-09 01:11:34 瀏覽:465
android啟動速度優化 發布:2025-01-09 01:08:17 瀏覽:918
hadoop命令上傳文件 發布:2025-01-09 01:08:16 瀏覽:601