ホームページ >バックエンド開発 >PHPチュートリアル >PHP関数参照呼び出しの問題
関数 &test(){
static $b = 1;
$b を返す }
$a = &test();
$c = & test(); / / ここで test() 関数が再度呼び出されるのですが、なぜ静的な $b = 1; が実行されなくなったのですか?結果はこの時点で $c=10 であることを示しているためです
// static が削除されると、結果は 3 になります。これをどう説明しますか?ありがとう!
echo $c;
ディスカッション (解決策) への返信
static は変数 $b を変更します。その後、static が削除されると、$a = &test() が呼び出されるたびに初期化されます。 ; (& を追加し、アドレスを渡します)、$a が変更され、静的変数 $b の値も変更されるため、$c = &test(); が実行されると、$b の値は 8 と 10 になります。
ステートメントを
function &test() {
static $b = 100;