ホームページ php教程 php手册 PHP中全局变量global和$GLOBALS[]的区别

PHP中全局变量global和$GLOBALS[]的区别

May 25, 2016 pm 04:52 PM
global グローバル変数

PHP的全局变量和C语言有一点点不同。在C语言中,全局变量在函数中主动生效,除非被局部变量笼罩。这可能引起一些问题,有些人可能漫不经心的转变一个全局变量。PHP中全局变量在函数中应用时必须用global申明为全局。

一、举例比较

例一:代码如下

<?php
$var1 = 1;
function test() {
    unset($GLOBALS[&#39;var1&#39;]);
}
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的同名引用或者指针。

文章链接:

随便收藏,请保留本文地址!

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

C++ 関数のローカル変数とグローバル変数の違いは何ですか? C++ 関数のローカル変数とグローバル変数の違いは何ですか? Apr 19, 2024 pm 03:42 PM

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

Go言語には静的グローバル変数はありますか? Go言語には静的グローバル変数はありますか? Jul 11, 2023 pm 03:37 PM

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

PHPリクエストとはどういう意味ですか? PHPリクエストとはどういう意味ですか? Jul 07, 2021 pm 01:49 PM

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

JavaScript でのグローバル変数の安全性の実装 JavaScript でのグローバル変数の安全性の実装 Jun 15, 2023 pm 10:33 PM

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

Xiaomi メッシュ システム AC1200: 最大 370 平方メートルの新しい Wi-Fi メッシュ システムが世界的に発売 Xiaomi メッシュ システム AC1200: 最大 370 平方メートルの新しい Wi-Fi メッシュ システムが世界的に発売 Jun 19, 2024 pm 12:13 PM

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

Golang関数のグローバル変数とローカル変数のデータ競合分析 Golang関数のグローバル変数とローカル変数のデータ競合分析 May 21, 2023 am 08:19 AM

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

C プログラムでのグローバル変数の再宣言 C プログラムでのグローバル変数の再宣言 Sep 20, 2023 pm 10:29 PM

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

golang 関数は goroutine のグローバル変数に直接アクセスできますか? golang 関数は goroutine のグローバル変数に直接アクセスできますか? May 01, 2024 pm 05:51 PM

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

See all articles