ホームページ  >  記事  >  バックエンド開発  >  PHP変数で未設定を破棄する方法_PHPチュートリアル

PHP変数で未設定を破棄する方法_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:02:491073ブラウズ

phpチュートリアル変数の破棄とunsetの使用法

unset -- 指定された変数を解放します
説明
void unset (混合変数 [, 混合変数 [, ...]])


unset() は、指定された変数を破棄します。 PHP 3 では、unset() は TRUE (実際には整数値 1) を返すことに注意してください。一方、PHP 4 では、unset() は実際の関数ではなくなり、ステートメントになりました。戻り値がないため、unset() の戻り値を取得しようとすると解析エラーが発生します。

参考PHPマニュアル:


/* これがメモリマップだと想像してください
 ____________________________________________
|ポインタ|値 |変数 |
 -----------------------------------
|   1 |  NULL |         --- |
|   2 |  NULL |         --- |
|   3 |  NULL |         --- |
|   4 |  NULL |         --- |
|   5 |  NULL |         --- |
------------------------------------
いくつかの変数を作成します */
$a=10;
$b=20;
$c=array ('one'=>array (1, 2, 3));
/* メモリを見てください
 _____________________________
|ポインタ|値 |       変数 |
 -----------------------------------
|   1 |  10 |       $a |
|   2 |  20 |       $b |
|   3 |  1 |      $c['one'][0] |
|   4 |  2 |      $c['one'][1] |
|   5 |  3 |      $c['one'][2] |
------------------------------------
してください */
$a=&$c['one'][2];
/* メモリを見てください
 _____________________________
|ポインタ|値 |       変数 |
 -----------------------------------
|   1 |  NULL |       --- |  // $a の値は破棄され、ポインタは解放されます
|   2 |  20 |       $b |
|   3 |  1 |      $c['one'][0] |
|   4 |  2 |      $c['one'][1] |
|   5 |  3 |  $c['one'][2] ,$a | // $a がここに来ました
------------------------------------
してください */
$b=&$a;  // または $b=&$c['one'][2];結果は、「$c['one'][2]」と「$a」が同じポインターにある場合と同じになります。
/* メモリを見てください
 ________________________________
|ポインタ|値 |       変数 |
 --------------------------------------
|   1 |  NULL |       --- | 
|   2 |  NULL |       --- |  // $b の値は破棄され、ポインタは解放されます
|   3 |  1 |      $c['one'][0] |
|   4 |  2 |      $c['one'][1] |
|   5 |  3 |$c['one'][2] ,$a , $b |  // $b がここに来ました
--------------------------------------
次に行うこと */
unset($c['one'][2]);
/* メモリを見てください
 ________________________________
|ポインタ|値 |       変数 |
 --------------------------------------
|   1 |  NULL |       --- | 
|   2 |  NULL |       --- | 
|   3 |  1 |      $c['one'][0] |
|   4 |  2 |      $c['one'][1] |
|   5 |  3 |      $a 、 $b | // $c['one'][2] はメモリでも配列でも破棄されます
--------------------------------------
次に行うこと */
$c['one'][2]=500;    //今は配列になっています
/* メモリを見てください
 ________________________________
|ポインタ|値 |       変数 |
 --------------------------------------
|   1 |  500 |      $c['one'][2] |  // メモリ内の任意の (次の) 空きポインタに配置されるように作成されました
|   2 |  NULL |       --- | 
|   3 |  1 |      $c['one'][0] |
|   4 |  2 |      $c['one'][1] |
|   5 |  3 |      $a 、 $b | //このポインタは使用中です
--------------------------------------
トレイが古いポインタで $c['one'][2] を返し、参照 $a,$b を削除します。  */
$c['one'][2]=&$a;
unset($a);
設定を解除($b);  
/* メモリを見てください
 ________________________________
|ポインタ|値 |       変数 |
 --------------------------------------
|   1 |  NULL |       --- | 
|   2 |  NULL |       --- | 
|   3 |  1 |      $c['one'][0] |
|   4 |  2 |      $c['one'][1] |
|   5 |  3 |      $c['one'][2] | //$c['one'][2] が返され、$a,$b は破棄されます
-------------------------------------- ?>
これが教程のお役に立てば幸いです。


このように便能够说明php の unset はどのように実行されますか

最初に強調しておきたいのは、unset は PHP では関数ではないということです。関数ではないため、戻り値がなく、使用時に unset の戻り値を判断に使用することはできません。

第二に、関数内で unset はローカル変数のみを破棄できますが、グローバル変数は破棄できません。マニュアルの例を見てみましょう。

関数 destroy_foo() {
グローバル $foo;
unset($foo);
}

$foo = 'バー';

destroy_foo();
エコー $foo;
?>

によって返される結果は

です

バー

http://www.bkjia.com/phper/php/37201.htm


http://www.bkjia.com/PHPjc/445335.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445335.html技術記事 PHP チュートリアル 変数の破棄 unset の使用方法 unset -- 指定された変数を解放します。 説明 void unset (mixed var [,mixed var [, ...]]) unset() は、指定された変数を破棄します。 PHP 3 では、unset(...
) に注意してください。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。