ホームページ > バックエンド開発 > PHPチュートリアル > 【PHPの基礎知識】$GLOBALS['']とglobal_PHPの違いチュートリアル

【PHPの基礎知識】$GLOBALS['']とglobal_PHPの違いチュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-21 14:58:10
オリジナル
1016 人が閲覧しました

PHP プログラム開発では、$GLOBALS[] と global の違いに気づかない人が多いですが、この 2 つの書き方は文字通りの違いだけでなく、実際には大きく異なります。

具体的な違い

1.$GLOBALS['var'] は外部グローバル変数そのもの (実際の外部 $var 自体) です。

2.global $var は、外部 $var と同じ名前の参照またはポインタです (外部 $var の代替として理解できます)。

例を挙げてみましょう:

クリップボードにコピーLiehuo.Net Codes引用コンテンツ: [www.bkjia.com] $var1 = "test1";
$var2 = "test2";
$GLOBALS['var2'] = &$GLOBALS['var1'];
test() ;
echo $var2; // test1 を出力します
?>
上記コードの出力結果はtest1です

クリップボードにコピー引用コンテンツ: [www.bkjia.com]Liehuo.Net Codes $var1 = "test2"; 関数 test(){
$var2 = &$var1; echo $var2; // test2 を出力します
?>
上記のコードの出力は少し予想外で、結果は test2 です

test2 が出力されるのはなぜですか?実際には、$var1 の参照が $var2 の参照アドレスを指しているためです (平たく言えば、テスト関数内の $var1 は代替です)。結果として得られる物質の価値は変わりません。

別の例を見てみましょう。

クリップボードにコピー

引用コンテンツ:

[www.bkjia.com]

$var1 = "test1"; unset($GLOBALS['var1']); test(); // 何も出力されません ? ; Liehuo.Net Codes$var1は本当に削除されているため、何も出力できません。
クリップボードにコピー


引用コンテンツ:
[www.bkjia.com]
$var1 = "test1";

function test(){

unset($var1); test(); // test1 を出力します。 今度はまたtest1が誤って出力されてしまいました。これは、エイリアスまたは参照(代替)のみが削除され、変数自体の値は一切変更されていないことを証明します。 わかりますか? Liehuo.Net Codes 言い換えると、global $var は実際には、外部変数を呼び出すための $var = &$GLOBALS['var'] のエイリアスです。



http://www.bkjia.com/PHPjc/363889.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/363889.html

技術記事

PHP プログラム開発では、多くの開発者は $GLOBALS[] と global の違いに気づきません。この 2 つの書き方は文字通りの違いだけでなく、実際には大きく異なります...

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート