//参照によるリターン
リーリー2 番目の関数は、割り当てられた変数 $cr = 4 の値を変更しますが、関数の戻り値が変わらないのはなぜですか?
//参照によるリターン
リーリー2 番目の関数は、割り当てられた変数 $cr = 4 の値を変更しますが、関数の戻り値が変わらないのはなぜですか?
最初の関数のコードは実際には次のようになります。$b
は静的変数であるため、関数の実行後に解放されません。
ただし、2 番目の関数では、$a
はローカル変数です。関数の実行後、この変数のメモリは解放されます。
まず、呼び出した関数が参照を返すかどうかを明確にする必要があります。
関数名の前に & を付ける必要があり、代入ステートメントの前に & を付ける必要があります したがって、質問 は実際には参照ではありません。 $cr1 = cuitReturn();
cuitReturn
の $a
がローカル変数であり、静的ではないためです。 function returns その後解放されます。 $cr = &cuitReturn();
はローカル変数を参照するのと同じです これを C++ に置くと大変なことになります…つまりポインタです。不明なメモリを指します。cuitReturn
里面的 $a
是一个局部变量,而且不是静态的,所以,函数返回之后就被释放了,$cr = &cuitReturn();
相当于是引用了一个局部变量, 这要是放在C++里面是会出大事的...这意味着指针指向未知内存, 但是 PHP 引擎应该是有处理的, 所以 $rc
对于 $a
しかし、PHP エンジンはそれを処理する必要があるため、
$rc
の参照は無効です🎜