一php运算符优先级问题
先見一运算符优先级表
演算子の優先順位(运算符优先级)
参照
結合演算子 追加情報
非結合クローン 新しいクローンと新規
left [ array()
非結合 ++ -- インクリメント/デクリメント
right ~ - (int) (float) (string) (array) (object) (bool) @types
型の非結合インスタンス
そうです! 論理
左 * / % 算術
左 + - 。 算術演算と文字列
left << >> ビット単位
非結合
<= > >= <> 比較
非結合 == != === !== 比較
左 & ビットごと、参照
左 ^ ビットごと
左 | ビット単位
左 && 論理
左 || 論理
左 ?: 三項
右 = += -= *= /= .= %= &= |= ^= <<= >>= => assign
left およびlogical
left xorlogical
left またはlogicalleft、多くの用途
参照
&& 优先先 = 优先より
ただし
参照
$a = 100 && $b = 200
按照运算符优先级规则顺序应该は
参照
$a = ( ( 100 && $b ) = 200 )
ただしphp里有规定,
参照
注: = の優先順位は他のほとんどの演算子よりも低いですが、PHP では引き続き次のような式が許可されます: if (!$a = foo()), inこの場合、 foo() の戻り値は $a に入れられます。
所以实际效果是
参照
( $a = 100 ) && ( $b = 200 )
は、ハンドル&&变成了と
另外、引用鸟哥の一例
引用
最後に、顺便说一下、PHP は T_BOOLEAN_AND に属し、 T_LOGICAL_AND(and) と T_LOGICAL_OR(or) を定義しました、この先の優先順位は等号よりも低い、現在は会有了、多数の PHP 入力门教材例代中经典的:
$result = mysql_query(*) または die(mysql_error());