PHP基礎トラップ問題(変数付与)
802 ワード
$a=3;
$b=6;
if($a=5||$b=7){
$a++;
$b++;
}
var_dump($a, $b);
落とし穴1
$a=5、$b=7を$a=5、$b=7と見なした
エラー結果:3,6
トラップ2
演算子の優先度、$a=5賦値成功$b=7実行なし
エラー結果:6,7
正しく理解する
トラップは演算子の優先であり、代入演算子(=)の優先度は最も低いので、正しく理解するには
$a=(5||$b=7)
正しい結果:true,7
アップグレードして
変形1
$a=3;
$b=6;
$c=1;
if($a=5||$b=7 && $c=10){
$a++;
$b++;
}
var_dump($a, $b,$c);
変形2
$a=3;
$b=6;
$c=1;
if($a=0||$b=7 && $c=10){
$a++;
$b++;
}
var_dump($a, $b,$c);
興味のある学生は考えてみてください:)