ホームページ >バックエンド開発 >PHPチュートリアル >PHP 引用符の受け渡し、参照の戻り、逆参照、および設定解除

PHP 引用符の受け渡し、参照の戻り、逆参照、および設定解除

WBOY
WBOYオリジナル
2016-06-13 13:11:15946ブラウズ

PHP 参照の受け渡し、参照の戻り、逆参照、および設定解除

元のソース: http://hi.baidu.com/kashifs/blog/item/928379f254888cbea50f524a.html

?

PHP でのクォートとは、同じ変数の内容に異なる名前でアクセスすることを意味します。 これは C ポインター とは異なり、参照はシンボル テーブルのエイリアスです。 PHP では変数名と変数の内容が異なるため、同じ内容でも異なる名前が付けられることに注意してください。

?

?

参照渡し

function foo ( &$var )
{$var++;}
foo ($a);  // 注意在函数调用时没有引用符号 - 只有函数定义中有。光是函数定义就足够使参数通过引用来正确传递了
?

リファレンスリターン

function &init_users()
{ ... return $cls;}
//使用引用返回,必须在两个地方都用&符号
$user = & init_users();
function &init_users()
{ ...return $cls;}
?

参照解除
参照の設定を解除すると、変数名と変数の内容の間のバインドが解除されるだけです。これは、変数の内容が破壊されることを意味するものではありません。

$a="hihaha";
$b= &$a;
unset($b);
echo$a;// shows "hihaha"
?


----------------------------------------------------- ------------------------

これは php の引用の例です。よく読んでください:

?
----------------------------------------------- - -----------------

PHP でユーザー関数 内のグローバル変数の設定を解除すると、ローカル変数のみが破壊されますが、グローバル変数 は破壊されません。 (PHP4 以降、unset は関数ではなくなりましたが、 はステートメント になります)。 グローバル変数を破棄する必要がある場合はどうすればよいですか?これも非常に簡単です。 $GLOBALS 配列を使用して実装します。

< ?PHP 
function foo() { 
unset($GLOBALS['bar']);  // 而不是unset($bar)
} 
$bar = “something”; 
foo(); 
var_dump($bar); 
?>
?

未設定の場合:

1. この関数は、変数値が占有するスペースが 256 バイトを超えた場合にのみメモリを解放します。
2. すべての変数がその値を指している場合のみです。アドレスは値) が破棄された後にのみ解放されます (1 の判定も実行する必要があります)

つまり、他の変数がバインドされているかどうかがチェックされ、存在する場合は解放されません。この例のように:

$a="hihaha";
$b= &$a;
unset($b);
echo$a;// shows "hihaha"
?

そのため、 メモリを解放するには $variable=null を使用することをお勧めします。

?現在の PHP スクリプトのメモリ使用量をテストする関数を指定します:

<?php
echo memory_get_usage()."\n";
$a = str_repeat("A", 1000);
echo memory_get_usage()."\n";
$b=&$a;  //下面的内存大小不会变,unset只是解除$a的绑定
unset($a);
echo memory_get_usage()."\n";
?>
?

まだよくわかりません。こちらを参照してください: http://www.laruence.com/2011/03/04/1894.html

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。