PHP unset関数原理と使用方法の解析


unset-与えられた変数をリリースします。
説明
unset(mixed$var[,mixed]):void
unset()は指定した変数を廃棄します。
unset()の関数での挙動は、破壊したい変数の種類によって異なります。
関数でunset()のグローバル変数がある場合は、ローカル変数だけが破壊されますが、呼び出し環境の変数はunset()を呼び出す前と同じ値を維持します。

<?php 
function destroy_foo() { 
  global $foo; 
  unset($foo); 
} 
 
$foo = 'bar'; 
destroy_foo(); 
echo $foo; 
?>
上記のルーチンは出力されます。
bar
関数でunset()のグローバル変数を望むなら、$GLOOBALS配列を使って実行できます。

<?php 
function foo()  
{ 
  unset($GLOBALS['bar']); 
} 
 
$bar = "something"; 
foo(); 
?>
関数にunset()が参照によって伝達される変数があると、ローカル変数だけが破壊され、呼び出し環境における変数はunset()を呼び出す前と同じ値を維持します。

<?php 
function foo(&$bar) { 
  unset($bar); 
  $bar = "blah"; 
} 
 
$bar = 'something'; 
echo "$barn"; 
 
foo($bar); 
echo "$barn"; 
?>
上記のルーチンは出力されます。
something
something
関数内でunset()の静的変数があると、関数内部でこの静的変数が破壊されます。しかし、この関数を再起動すると、この静的変数は破壊された前の値に復元されます。

<?php 
function foo() 
{ 
  static $bar; 
  $bar++; 
  echo "Before unset: $bar, "; 
  unset($bar); 
  $bar = 23; 
  echo "after unset: $barn"; 
} 
 
foo(); 
foo(); 
foo(); 
?>
上記のルーチンは出力されます。
Before unset:1、after unset:23
Before unset:2、after unset:23
Before unset:3、after unset:23
パラメータ
var
破壊する変数。

その他の変数……
戻り値
戻り値がありません。
模範的なタイプ
Example钾1 unset()例
<?php
//単一変数の廃棄
unset($foo)
//単一配列要素の廃棄
unset($bar['quux]);
//一つ以上の変数を廃棄する
unset($foo 1、$foo 2、$foo 3)

Example〓〓2使用(unset)タイプ強制変換
(unset)タイプの強制変換は、しばしば関数unset()と困惑を引き起こす。完全性のために、NULLタイプとしての強制変換です。変数の種類は変わりません。
<?php
$name='Felipe'
var_dump((unset)$name);
var_dump($name);

上記のルーチンは出力されます。
NULL
string(6)「Felipe」
コメント
  • Note:関数ではなく言語のコンストラクタなので、可変関数によって呼び出すことができません。
  • It is possible to unset even oject properties visible in current context.
  • は、PHP 5の前にオブジェクト内で$thisを廃棄することができません。
  • は、unset()にアクセスできないオブジェクト属性がある場合、__u uunset()はこの積載方法を呼び出します。
  • 以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。