Heim php教程 php手册 PHP中全局变量global详解

PHP中全局变量global详解

May 25, 2016 pm 04:47 PM
global include require

本文章来详细的介绍关于PHP中全局变量global的方法,有需要了解global函数使用方法的朋友可参考本文章.

变量的范围即它定义的上下文背景(也就是它的生效范围).大部分的 PHP 变量只有一个单独的范围.这个单独的范围跨度同样包含了 include 和 require 引入的文件.

实例代码如下:

<?php
$a = 1;
include &#39;b.inc&#39;;
?>
Nach dem Login kopieren

这里变量 $a 将会在包含文件 b.inc 中生效.但是,在用户自定义函数中,一个局部函数范围将被引入.任何用于函数内部的变量按缺省情况将被限制在局部函数范围内.例如:

实例代码如下:

<?php
$a = 1; /* global scope */
function Test() {
    echo $a; /* reference to local scope variable */
}
Test();
?>
Nach dem Login kopieren

这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值.你可能注意到 PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖.这可能引起一些问题,有些人可能不小心就改变了一个全局变量.PHP 中全局变量在函数中使用时必须申明为global.

今天就遇到了php 全局变量不起作用的问题.先上一段简单的代码:

实例代码如下:

<?php
$a = 0;
function Test() {
    $a = 1;
}
Test();
echo $a;
?>
Nach dem Login kopieren

上面的代码中输出是0,那是因为函数体Test内$a变量被缺省设置为局部变量,$a的作用域就是在Test内.修改代码如下

实例代码如下:

<?php
$a = 0;
function Test() {
    global $a; //申明函数体Test内使用的$a变量为global全局变量
    $a = 1;
}
Test();
echo $a;
?>
Nach dem Login kopieren

申明函数体Test内使用的$a变量为global全局变量后,使得$a的作用全局,所以输出为1.

上面的实例只是基本的global全局变量知识,下面我们看看复杂点的:

//A.php 文件

实例代码如下:

<?php
function Test_Global() {
    include &#39;B.php&#39;;
    Test();
}
$a = 0;
Test_Global();
echo $a;
?>
Nach dem Login kopieren

//B.php 文件

<?php
function Test() {
    global $a; //申明函数体Sum内使用的$a变量为global全局变量
    $a = 1;
}
?>
Nach dem Login kopieren

为什么输出的却是0?!!

在用户自定义函数中,一个局部函数范围将被引入.任何用于函数内部的变量按缺省情况将被限制在局部函数范围内(包括include 和 require 导入的文件内的变量)!

解释:A.php文件的内Test_Global是定义好的第三方函数,该函数用include导入了B.php文件内的$a的global全局变量,所以$a被限制在Test_Global局部函数范围内,所以B.php文件内的$a的作用范围都在Test_Global内,而不是作用了整个A.php内….

解决方案:

1. 冲出局部函数

实例代码如下:

//A.php 文件

<?php
function Test_Global() {
    Test();
}
include &#39;B.php&#39;; //将include 从局部Test_Global函数中移出
$a = 0;
Test_Global();
echo $a;
?>
Nach dem Login kopieren

//B.php 文件

<?php
function Test() {
    global $a;
    $a = 1;
}
?>
Nach dem Login kopieren

2.优秀的访问器

实例代码如下:

//A.php 文件

<?php
include &#39;B.php&#39;;
$a = 0;
Set_Global($a);
echo $a;
?>
Nach dem Login kopieren

//B.php 文件

<?php
function Set_Global(&$var) {
    $var = 1;
}
?>
Nach dem Login kopieren

 


文章网址:

随意转载^^但请附上教程地址。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

vue3+vite: So beheben Sie den Fehler bei der Verwendung von require zum dynamischen Importieren von Bildern in src vue3+vite: So beheben Sie den Fehler bei der Verwendung von require zum dynamischen Importieren von Bildern in src May 21, 2023 pm 03:16 PM

vue3+vite:src verwendet „require“, um Bilder dynamisch zu importieren, und vue3+vite importiert dynamisch mehrere Bilder. Wenn Sie „requireisnotdefined“ verwenden, wird eine Fehlermeldung angezeigt like vue2 like imgUrl:require(' .../assets/test.png') wird importiert, da Typescript Require nicht unterstützt, daher wird Import verwendet. So lösen Sie das Problem: Verwenden Sieawaitimport

Was ist der Unterschied zwischen PHP include und include_once? Was ist der Unterschied zwischen PHP include und include_once? Mar 22, 2023 am 10:38 AM

Wenn wir Webseiten mit PHP schreiben, müssen wir manchmal Code aus anderen PHP-Dateien in die aktuelle PHP-Datei einfügen. Zu diesem Zeitpunkt können Sie die Funktion include oder include_once verwenden, um die Dateieinbindung zu implementieren. Was ist also der Unterschied zwischen include und include_once?

Was sind die Verwendungszwecke von require? Was sind die Verwendungszwecke von require? Nov 27, 2023 am 10:03 AM

Verwendung von require: 1. Module einführen: In vielen Programmiersprachen wird require verwendet, um externe Module oder Bibliotheken einzuführen, damit die von ihnen bereitgestellten Funktionen im Programm verwendet werden können. In Ruby können Sie beispielsweise „require“ verwenden, um Bibliotheken oder Module von Drittanbietern zu laden. 2. Klassen oder Methoden importieren: In einigen Programmiersprachen wird „require“ verwendet, um bestimmte Klassen oder Methoden zu importieren, damit sie in der aktuellen Datei verwendet werden können 3. Führen Sie bestimmte Aufgaben aus: In einigen Programmiersprachen oder Frameworks wird require zum Ausführen bestimmter Aufgaben oder Funktionen verwendet.

Xiaomi Mesh System AC1200: Neues WLAN-Mesh-System für bis zu 370 Quadratmeter wird weltweit eingeführt Xiaomi Mesh System AC1200: Neues WLAN-Mesh-System für bis zu 370 Quadratmeter wird weltweit eingeführt Jun 19, 2024 pm 12:13 PM

Xiaomi hat ein weiteres WLAN-Mesh-System für den globalen Markt vorgestellt. Nachdem der AC1200-Router (ca. 69 Euro bei Amazon) hierzulande in den Handel kam, wurde nun das Xiaomi Mesh System AC1200 angekündigt. Das neue Produkt wurde kürzlich auf gelistet

Schritte zur Behebung des schwerwiegenden Fehlers im PHP-Header: require(): Fehler beim Öffnen von erforderlichem 'data/tdk.php' (include_path='.;C:\php\pear') Schritte zur Behebung des schwerwiegenden Fehlers im PHP-Header: require(): Fehler beim Öffnen von erforderlichem 'data/tdk.php' (include_path='.;C:\php\pear') Nov 27, 2023 pm 12:51 PM

Schritte zum Beheben von fatalerror:require():Failedopeningrequired'data/tdk.php'(include_path='.;C:phppear') im PHP-Header Bei der Entwicklung von Websites oder Anwendungen mit PHP stoßen wir häufig auf verschiedene Fehler. Einer der häufigsten Fehler ist „fatalerror:require():Failed

Hashkey Global kündigt den Start von Binance Platform Coin BNB an! Zhao Changpengque machte einen Fehler Hashkey Global kündigt den Start von Binance Platform Coin BNB an! Zhao Changpengque machte einen Fehler Mar 04, 2025 am 06:36 AM

Hashkey, die erste lizenzierte Kryptowährungsbörse in Hongkong, gab am 18. Februar auf der X -Plattform bekannt, dass seine internationale Handelsplattform Hashkeyglobal BNB (Binance Coin) offiziell eingeführt habe. "Hashkeyglobal fügte Spot Trading hinzu: BNB begrüßt neue Benutzer: Einzahlung oder Handel BNB, um am HK $ 10.000 -Preispool teilzunehmen und eine Belohnung von HK $ zu gewinnen (zuerst zuerst serviert) Zhao Changpeng (CZ) kommentierte, dass BNB in ​​Hashkeyglobal war

Xiaomi bringt günstige Soundbar mit Bluetooth 5.3 und zahlreichen Anschlüssen auf den Markt Xiaomi bringt günstige Soundbar mit Bluetooth 5.3 und zahlreichen Anschlüssen auf den Markt Oct 01, 2024 am 06:22 AM

Xiaomi hat kürzlich die Xiaomi Soundbar 2.0ch auf seiner globalen Website gelistet, was darauf hindeutet, dass eine weltweite Markteinführung bevorsteht, obwohl es hierzu noch keine konkreten Informationen gibt. Wie üblich verrät Xiaomi alle technischen Daten, macht aber keine Angaben dazu

Schritte zur Behebung eines schwerwiegenden Fehlers im PHP-Header: require(): Fehler beim Öffnen der erforderlichen Datei „data/tdk.php' Schritte zur Behebung eines schwerwiegenden Fehlers im PHP-Header: require(): Fehler beim Öffnen der erforderlichen Datei „data/tdk.php' Nov 27, 2023 am 10:41 AM

Schritte zum Beheben von FatalError:require():Failedopeningrequired'data/tdk.php' im PHP-Header Bei der Entwicklung und Pflege von PHP-Websites stoßen wir häufig auf verschiedene Fehler und Ausnahmen. Einer der häufigsten Fehler ist „FatalError:require():Failedopeningrequired'data/tdk.php‘“.

See all articles