PHP中全局变量global和$GLOBALS[]的区别
PHP的全局变量和C语言有一点点不同。在C语言中,全局变量在函数中主动生效,除非被局部变量笼罩。这可能引起一些问题,有些人可能漫不经心的转变一个全局变量。PHP中全局变量在函数中应用时必须用global申明为全局。
一、举例比较
例一:代码如下
<?php $var1 = 1; function test() { unset($GLOBALS['var1']); } test(); echo $var1; ?>
因为$var1被删除了,所以什么东西都没有打印。
例二:代码如下
<?php $var1 = 1; function test() { global $var1; unset($var1); } test(); echo $var1; ?>
意外的打印了1,证明删除的只是别名引用,其本身的值没有受到任何的改变。
二、解释:global $var其实就是&$GLOBALS['var'],调用外部变量的一个别名而已,上面代码中的$var1和$GLOBALS['var1']是指的同一变量,而不是两个不同的变量。
PHP的全局变量和C语言有一点点不同。在C语言中,全局变量在函数中主动生效,除非被局部变量笼罩。这可能引起一些问题,有些人可能漫不经心的转变一个全局变量。PHP中全局变量在函数中应用时必须用global申明为全局。
PHP的Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
三、结论
1.$GLOBALS['var']是外部的全局变量本身
2.global $var是外部$var的同名引用或者指针。
文章链接:
随便收藏,请保留本文地址!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C++ ローカル変数とグローバル変数の違い: 可視性: ローカル変数は定義関数に限定されますが、グローバル変数はプログラム全体で参照できます。メモリ割り当て: ローカル変数はスタックに割り当てられ、グローバル変数はグローバル データ領域に割り当てられます。スコープ: ローカル変数は関数内にあり、グローバル変数はプログラム全体にあります。初期化: ローカル変数は関数の呼び出し時に初期化され、グローバル変数はプログラムの開始時に初期化されます。再作成: ローカル変数は関数呼び出しごとに再作成されますが、グローバル変数はプログラムの開始時にのみ作成されます。

Go 言語には静的グローバル変数がありません。グローバル変数の必要性を処理するために、より柔軟な方法が使用されます。グローバル変数は通常、パッケージ レベルで宣言されます。つまり、関数の外で宣言される変数です。これらのグローバル変数はパッケージ全体に存在します. が表示され、パッケージ内の任意の関数で使用できます。

request の中国語の意味は「要求」で、PHP のグローバル変数であり、「$_POST」、「$_GET」、「$_COOKIE」を含む配列です。 「$_REQUEST」変数は、POSTまたはGETで送信されたデータやCOOKIE情報を取得できます。

JavaScript の人気が高まるにつれて、JavaScript に依存する Web サイトやアプリケーションがますます増えています。ただし、JavaScript でグローバル変数を使用すると、セキュリティ上の問題が発生する可能性があります。この記事では、JavaScriptでグローバル変数の安全性を実装する方法を紹介します。グローバル変数の使用を避ける最善の方法は、グローバル変数の使用を避けることです。 JavaScript では、関数内で宣言されない限り、すべての変数はデフォルトでグローバルです。したがって、可能な限りローカル変数を使用する必要があります。

Xiaomi は、世界市場向けに別の WLAN メッシュ システムを導入しました。 AC1200ルーター(Amazonで約69ユーロ)がこの国で発売された後、Xiaomi Mesh System AC1200が発表されました。新製品は最近掲載されました

Golang は、効率性、シンプルさ、同時実行性などの特徴を備えた強力に型指定されたプログラミング言語であるため、徐々に多くの開発者に好まれています。 Golang の開発では、関数のグローバル変数とローカル変数がデータ競合の問題を引き起こすことがよくあります。この記事では、Golang関数におけるグローバル変数とローカル変数のデータ競合問題を実際のコーディングの観点から分析していきます。 1. グローバル変数のデータ競合 Golang のグローバル変数はすべての関数でアクセスできるため、厳密な設計とコーディングを行わないと

初期化なしでグローバル変数を再宣言した場合、初期化を使用してグローバル変数を再宣言した場合、およびグローバル変数を再宣言して 2 回初期化した場合に、C と C++ でどのように動作が異なるかを見ていきます。さらに、ローカル変数を使用して上記の組み合わせを繰り返します。 1.A) C プログラム: 初期化せずにグローバル変数を再宣言 #include<stdio.h>intvar;intvar;intmain(){ printf("Var=%d",var); return0;} Output Var=0B) C++プログラム:

はい、Goroutine の Go 関数はデフォルトでグローバル変数に直接アクセスできます。理由: Goroutine は、グローバル変数へのアクセスを含め、Goroutine を作成した Goroutine のメモリ空間を継承します。
