本文目錄一覽:
- 1、PHP運算符優先級
- 2、關於php 三元運算符的優先級問題。請教?
- 3、PHP 關於訪問控制的和運算符優先級介紹
- 4、php邏輯優先級
- 5、php 優先級問題
- 6、php中的運算符優先級是什麼樣的
PHP運算符優先級
10-32 為最高優先級
相當於(10-32) ? 0 : true
而後 0 ? 5 : 3
0在計算機中被認為FLASE 因此答案是3
請給分,謝謝~
關於php 三元運算符的優先級問題。請教?
三元運算符的優先級是從右到左的,因此上面順序是:
$i = 2;
先運行:($i == 2 ? “A” : $i == 1)
然後再運行 (? ‘B’ : ‘C’;)
假設第一個運行的結果是 $ret 那麼$ret的值為A;
那麼第二個可以寫成
$ret?’B’:’C’;
因$ret的值為A,是真值,所以結果是B。
PHP 關於訪問控制的和運算符優先級介紹
這篇文章主要介紹了PHP中關於訪問控制的和運算符優先級介紹 需要的朋友可以參考下 複製代碼 代碼如下: class Foo { private $name = hdj ; public function getName(){ return $this name; } } class Bar extends Foo { public $name = deeka ; } $bar = new Bar; var_dump($bar name); var_dump($bar getName());
訪問控制
對屬性或方法的訪問控制 是通過在前面添加關鍵字 public protected 或 private 來實現的 由 public 所定義的類成員可以在任何地方被訪問 由 protected 所定義的類成員則可以被其所在類的子類和父類訪問(當然 該成員所在的類也可以訪問) 而由 private 定義的類成員則只能被其所在類訪問
複製代碼 代碼如下:
?php $a = ; $b = ; if($a = || $b = ){ echo $b br / ; $a++; $b++; } var_dump($a $b); echo br / $a = ( || $b = ) ;
echo hr / ; $a = ; $b = ; $c = ; if($a = || $b = $c = ){ $a++; $b++; } var_dump($a $b $c); echo br / 比 || 高 ;
echo hr / ; $a = ; $b = ; $c = ; if($a = || $b = $c = ){ $a++; $b++; } var_dump($a $b $c); echo br / ; echo hr / ;
lishixinzhi/Article/program/PHP/201311/20949
php邏輯優先級
在php中比較運算符(比如==)比邏輯運算符(比如 and )的優先級要高,
也就是說對於if($a and $b==1)是先判斷$b==1,再跟$a邏輯與。
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。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/306663.html