Heim Backend-Entwicklung PHP-Tutorial php中global和$GLOBALS区别分析_PHP教程

php中global和$GLOBALS区别分析_PHP教程

Jul 13, 2016 am 10:56 AM
global php unter Schreibmethode 分析 区别 ICH haben Freund von

有朋友说这两个其实就是写法的区别,下面我就来给大家证明一下关于global和$GLOBALS区别用法吧,有需要的朋友可具体参考。

根据官方的解释是

1.$GLOBALS['var']是外部的全局变量本身。

2.global $var是外部$var的同名引用或者指针。

先看下面的例子:

举例说明一下:

 

 代码如下 复制代码
        $var1 = 1; 
    $var2 = 2; 
    function test(){ 
         $GLOBALS['var2'] = &$GLOBALS['var1']; 
    } 
    test(); 
    echo $var2; 
    ?> 

正常打印结果为1

 代码如下 复制代码


        $var1 = 1; 
    $var2 = 2; 
    function test(){ 
         global $var1,$var2; 
         $var2 = &$var1; 
    } 
    test(); 
    echo $var2; 
    ?> 

 

意外打印结果为2

为什么会打印结果为2呢?其实就是因为$var1的引用指向了$var2的引用地址。导致实质的值没有改变


我们都知道PHP中的函数所产生的变量都是函数的私有变量,那么global产生的变量也确定逃不出这个规矩,为什么这么说呢,看下面的代码:

PHP代码

 

 代码如下 复制代码

function test() {
global $a;
unset($a);
}

$a = 1;
test();
print $a;
?>

履行效果为:
1

为什么会输出1呢?不是已经把$a给unset了吗?unset失灵了?PHP的bug?
都不是,其实unset起作用了,是把test函数中的$a给unset掉了,可以在函数后面参加
print $a;
也就是说global产生 了test函数外部$a的别名 变量“$a”,为了和外面的$a差别
接着回到上面的例子1,看test_global中的这一代码“$var2 =& $var1;”,上面是一个引用赋值运算,也就是$var2将指向var1所指向的物理内存地址
所以我们得出一个结论,在函数中global和$GLOBALS[]的差别在于:
global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量,一但转变了别名变量的指向地址,就会产生一些意料不到情况,例如例子1.
$GLOBALS[]确确凿实调用是外部的变量,函数内外会始终维持一致!

可以对照 下面两个列子:

 代码如下 复制代码
global:
function myfunction(){
global $bar;
unset($bar);
}
$bar="someting";
myfunction();
echo $bar;
?>
输出:someting
$global[]:
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
echo $bar;
?>
输出:空

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

 代码如下 复制代码

$a = 1;
$b = 2;

function Sum()
{
global $a, $b;

$b = $a + $b;
}

Sum();
echo $b;
?>

以上脚本的输出将是 "3"。在函数中申明 了全局变量 $a 和 $b,任何变量的所有引用变量都会指向到全局变量。

我们再来看一个例子吧。

 代码如下 复制代码

    $var1 = 1; 
    function test(){ 
         unset($GLOBALS['var1']); 
    } 
    test(); 
    echo $var1; 
    ?> 

因为$var1被删除了,所以什么东西都没有打印。

 代码如下 复制代码

    $var1 = 1; 
    function test(){ 
        global  $var1; 
         unset($var1); 
    } 
    test(); 
    echo $var1; 
    ?> 

意外的打印了1。证明删除的只是别名|引用,起本身的值没有受到任何的改变。

global问题解析:
question:我在 config.inc.php中定义了一些变量($a),在别的文件中函数外部 include("config.inc.php"),函数内部需要使用这些变量$a,如果没有声明的话,echo $a是打印不出来任何东西的。因此声明global $a,但是有很多函数和很多变量,总不能不断重复的这样声明吧?有什么好的解决办法,请指点。
answer1:先在config.inc.php里定义常量:define(常量名,常量值)
再在其他需要用到的地方require 'config.inc.php',
然后就能在这个文件里直接使用这个常量了。
answer2:我也有个办法,就是定义数组,如$x[a],$x,那样就只要声明global $x一个了。
answer3:我试了你的这个方法,不行啊。
answer4:改你的php.ini文件。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632142.htmlTechArticle有朋友说这两个其实就是写法的区别,下面我就来给大家证明一下关于global和$GLOBALS区别用法吧,有需要的朋友可具体参考。 根据官方的解...
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)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 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)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Deepseek Was ist der Unterschied zwischen der R1- und V3 -Version Deepseek Was ist der Unterschied zwischen der R1- und V3 -Version Feb 19, 2025 pm 03:24 PM

Deepseek: Eingehender Vergleich zwischen R1- und V3-Versionen hilft Ihnen, den besten AI-Assistenten auszuwählen! Deepseek hat bereits zig Millionen von Benutzern, und seine KI -Dialogfunktion wurde gut aufgenommen. Aber sind Sie verwirrt, wenn Sie sich den Versionen der R1- und V3 stellen? In diesem Artikel werden die Unterschiede zwischen den beiden im Detail erläutert, um die am besten geeignete Version auszuwählen. Der Kernunterschied zwischen Deepseekl1 und V3-Version: Features Das Designziel der V3-Version konzentriert Milliarden bis 70 Milliarden MOE Hybrid -Expertenarchitektur, die Gesamtparameter sind bis zu 671 Milliarden, jedes Token wird um 37 Milliarden aktiviert

Zusammenfassung der FAQs für die Verwendung von Deepseek Zusammenfassung der FAQs für die Verwendung von Deepseek Feb 19, 2025 pm 03:45 PM

Deepseekai Tool User Guide und FAQ Deepseek ist ein leistungsstarkes KI -Intelligent -Tool. FAQ: Der Unterschied zwischen verschiedenen Zugriffsmethoden: Es gibt keinen Unterschied in der Funktion zwischen Webversion, App -Version und API -Aufrufen, und App ist nur ein Wrapper für die Webversion. Die lokale Bereitstellung verwendet ein Destillationsmodell, das der Vollversion von Deepseek-R1 geringfügig unteren ist, das 32-Bit-Modell theoretisch 90% Vollversionsfunktion. Was ist eine Taverne? SillyTervern ist eine Front-End-Oberfläche, die das KI-Modell über API oder Ollama anruft. Was ist Breaking Limit

Hat Bitcoin Aktien? Hat Bitcoin Aktien? Mar 03, 2025 pm 06:42 PM

Der Kryptowährungsmarkt boomt, und Bitcoin als Führungskraft hat die Aufmerksamkeit vieler Investoren auf sich gezogen. Viele Menschen sind neugierig: Haben Bitcoin Aktien? Die Antwort ist nein. Bitcoin selbst ist keine Aktie, aber Anleger können indirekt in Bitcoin-bezogene Vermögenswerte über verschiedene Kanäle investieren, die in diesem Artikel ausführlich erläutert werden. Alternativen zu Bitcoin -Investitionen: Anstatt direkt in Bitcoin zu investieren, können Anleger am Bitcoin -Markt teilnehmen. Dies ist eine relativ bequeme Option für Anleger, die an Aktieninvestitionen gewöhnt sind, ohne Bitcoin direkt halten zu müssen. Aktien des Bitcoin -Bergbauunternehmens: Das Geschäft dieser Unternehmen ist Bitcoin Mining und Holding Bitcoin

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Was ist der Unterschied zwischen dem Handel vor dem Markt und nach dem Markt? Detaillierte Erläuterung der Unterschiede zwischen dem Handel mit Vormarkt und After-Market Was ist der Unterschied zwischen dem Handel vor dem Markt und nach dem Markt? Detaillierte Erläuterung der Unterschiede zwischen dem Handel mit Vormarkt und After-Market Mar 03, 2025 pm 11:54 PM

In den traditionellen Finanzmärkten bezieht sich der Handel vor dem Markt und nach dem Markt für Handelsaktivitäten außerhalb des regulären Handelszeitraums. Obwohl der Kryptowährungsmarkt rund um die Uhr handelt, bieten Handelsplattformen wie Bitget auch ähnliche Funktionen, insbesondere einige umfassende Plattformen, die gleichzeitig Aktien und Kryptowährungen handeln. In diesem Artikel werden die Unterschiede im Handel mit Vormarkt und After-Market klargestellt und die Auswirkungen auf den Währungspreis untersucht. Vier wichtige Unterschiede zwischen dem Handel vor dem Markt und nach dem Markt: Die Hauptunterschiede zwischen dem Handel vor dem Markt und dem Handel und regulären Handelsperioden nach dem Markt sind in vier Aspekten: Handelszeit, Liquidität, Preisschwankungen und Handelsvolumen: Handelszeit: Vormarkethandel erfolgt, bevor der offizielle Handel nach dem Handel nach dem Handel nach dem Handel nach dem Handel nach dem Handel nach dem Handel nach dem Handel ist. Liquidität: Die Liquidität des Handels vor und nach der Zeit ist niedrig, es gibt nur wenige Händler, und die Preisdifferenz und die Angebotspreisdifferenz ist groß.

See all articles