PHP セクションの出力結果を書きます:
<?php $count=5;function get_count(){ static $count=0; return $count++;}echo $count;++$count;echo get_count();echo get_count();?>
答えは次のとおりです: 501
これには主に 2 つの知識ポイントが含まれます:
1. PHP 変数のスコープ
2. 自動インクリメント/自動-decrement 変数;
面接官は「PHP 変数のスコープ」についてはよく理解していますが、「自動インクリメント/自動デクリメント変数」については少し自信がありません。ここで、参考として次の内容を確認してください:
自動インクリメント/デクリメントは、前置インクリメントと後置インクリメントに分けられ、シーケンスが含まれます:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php $a = 3; echo ++$a; //前置型,先自增再输出,结果为4,此时$a为4 $b = 3; echo $b++; //后置型,先输出3,再自增为4,此时$b为4 ?>
質問: $i=2 の場合、式 ($i++) を見つけます。 )*($i++)*($i++) を計算し、$i の値を見つけます
答え: ($i++)*($i++)*($i++) 結果は 24、$i は 5
分析: まず計算順序を確認します。括弧がある場合は、最初に $i の値 2 を ($i++) の値として取得し、その後 $i が 3 に増加します。残り時間 ($i++) = 2, $i=3]
まず、この時点での $i の値 3 を ($i++) の値として取得し、次に $i 自体を 4 に加算できます。 time ($i++) = 3, $ I = 4]
の後、括弧内を計算し、まずこの時の$ iの値を($ i ++)の値として取り、次に$ iと5
最後の乗算演算、つまり 2*3*4 = 24 $i=5