PHP奇抜な筆記試験の問題の1則

463 ワード

$a = 3;

$b = 5;

if($a = 5 || $b = 7){

	$a++;

	$b++;

}

echo $a, ' ', $b;

出力結果:
A、6 8
B、6 6
C、2 6
D、1 6
E、4 6
考えてみれば...
答えは1 6
($a=5|$b=7)は事実上($a=(5|($b=7))と書くことができるので,ここでは演算優先度を考える.
2番目のtrue+==trueは、ここではインクリメンタル演算を試験します.インクリメント、減算演算はブール値に影響を及ぼさず、減算演算はNULLに影響を及ぼさず、NULLにインクリメント演算を行うと1が得られる.文字変数の演算を処理する時、PHPはPerlの習慣を踏襲して、Cのではありませんて、文字変数は増加することしかできなくて、減らすことができません.