独自のパーソナライズされた unset 関数を作成しますが、機能しません。動作しないコードの例を次に示します。
<?php
function remove_var($mixedVar)
{
unset($mixedVar);
}
$sExample='Php';
remove_var($sExample);
echo $sExample;
?>
最初の問題は、引数を値で渡すことです。そのため、内部で何をしてもremove_var()
、関数の外部の元の変数には影響しません。代わりに参照渡しするには、関数宣言を次のように変更します。
function remove_var(&$mixedVar)
ただし、この方法にはまだ癖がありunset()
ます。変数が参照によって渡された場合でも、うまくいきません。ただし、代わりに変数をに設定すると機能しnull
ます。これはほとんど同等です。関数内の変数が の場合、unset()
その参照は削除されますが、元の参照は残され、値は変更されません。代わりに値を に変更するnull
と、参照はそのまま残りますが、値は明らかに に変更されnull
ます。とにかく、設定されていない変数の値を取得すると、null
実質的に同等になるはずです。だから試してみてください:
function remove_var(&$mixedVar)
{
$mixedVar = null;
}
$sExample
関数の外部に存在するため、関数は設定解除されません。unset
代わりに使用しないのはなぜですか。
function remove_var($mixedVar)
{
unset($mixedVar); // $mixedVar is unset not actual variable
}
$sExample='Php'; // this is outside variable
remove_var($sExample);
echo $sExample;
変数を参照渡ししても、unset
その変数は削除されません。例えば:
function remove_var(&$mixedVar)
{
unset($mixedVar);
}
$sExample='Php';
remove_var($sExample);
echo $sExample; // Php
unset
したがって、代わりに使用する必要があります。