浅谈PHP变量作用域以及地址引用问题_PHP
作用域的概念:
在PHP脚本的任何位置都可以声明变量,但是,声明变量的位置会大大影响访问变量的范围。这个可以访问的范围称为作用域。
主要的常用的包括:局部变量、全局变量、静态变量。
1、局部变量:就是在函数内声明的变量,他保存在内存的栈内,所以访问速度很快。仅在函数内有效。
2、全局变量:与局部变量相反,全局变量可以在程序的任何地方访问。只要在变量前面加关键字GLOBAL,就可以将其识别为全局变量。在整个php文件内有效。
3、静态变量:用static修饰只存在于函数作用域的变量,函数执行结束后其值并不消失。注:初始化后不能再次进行初始化,不能用表达式来赋值。
复制代码 代码如下:
function test()
{
static $b=0;//申明静态变量,放在函数外部声明的话,在函数内部是用不到的
$b=$b+1;
echo $b;
}
test();//这条语句会输出 $b的值 为1
test();//这条语句会输出 $b的值 为2
注:static $b=0 这一赋值操作只会在变量第一次被初始化的时候执行。
附A:类中静态成员和静态方法,差不多只是调用的时候统一使用类名或者self或者parent加::xxx,他们的作用域和这个一样,但是他的声明是在方法外部的
附B:js里面的作用域使:用var aa=‘xxx';在函数外面声明的就是全局变量(不管是否带有修饰符var)。在函数内部使用 var声明的是局部变量,不使用var修饰的是全局变量。
附C:关于引用
PHP引用:就是在变量、函数或者对象前加&.php中的引用就是想用不同的名字访问同一个变量的内容。
1、变量的引用:
复制代码 代码如下:
$a="ABC";
$b =&$a;
echo $a;//这里输出:ABC
echo $b;//这里输出:ABC
$b="EFG";
echo $a;//这里$a的值变为EFG 所以输出EFG
echo $b;//这里输出EFG
2、函数的传址调用
复制代码 代码如下:
function test(&$a)
{
$a=$a+100;
}
$b=1;
echo $b;//输出1
test($b); //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了
echo "
";
echo $b;//输出101
3、函数的引用返回
复制代码 代码如下:
function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6
解析:使用$a=test()得到的其实不是函数的引用返回。只是将函数的返回值复制给$a,而不会影响到$b。这样调用和普通的调用没区别。
Php规定:$a=&test()方式得到才是函数的引用返回。他将$b变量的内存地址和$a变量的内存地址指向了同一个地方。即相当于$a=&$b;
4、取消引用
复制代码 代码如下:
$a = 1;
$b =& $a;
unset ($a);
echo $b;
解析:unset一个引用,只是取消了变量名和变量的内容之间的绑定,并不意味着内容被销毁,其值还是真实存在的。
5、global引用:使用global $var 声明一个变量时,其实就是建立了一个到全局变量的引用。Global $val $var=&$GLOBALS[‘var'] ;
6、对象的引用:在对象的方法中,$this调用的对象都是调用它的引用
注:php中对于地址的指向不是由用户自己来实现的,而是通过zend核心实现的,php的引用采用的是“写拷贝”的原理,就是除非发生写操作,指向同一个地址的变量或对象是不会被拷贝的。
复制代码 代码如下:
$a = 1;
$b =$a;
$a和$b都是指向同一个内存地址,并不是$a和$b占用不同的内存。
若是现在执行一句$a=”dsd”:$a和$b所指向的内存数据需要重新写一次,此时zend核心会自动判断。自动为$b产生一个$a的数据拷贝,重新申请一块内存进行存储。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der Variablenbereich in PHP ist in lokalen (innerhalb der Funktion), globalen (zugänglich innerhalb des Programms) und Klassenbereich (zugänglich innerhalb der Klasseninstanz) unterteilt. Das Schlüsselwort global kann lokale Variablen als globale Variablen deklarieren, und das Schlüsselwort static kann lokale Variablen als statische Variablen deklarieren und ihre Werte zwischen Funktionsaufrufen beibehalten.

In Go umfasst der Funktionslebenszyklus Definition, Laden, Verknüpfen, Initialisieren, Aufrufen und Zurückgeben; der Variablenbereich ist in Funktionsebene und Blockebene unterteilt. Variablen innerhalb einer Funktion sind intern sichtbar, während Variablen innerhalb eines Blocks nur innerhalb des Blocks sichtbar sind .

Die Go-Sprache ist eine statisch typisierte Open-Source-Sprache. Sie zeichnet sich durch Einfachheit, Effizienz und Zuverlässigkeit aus und erfreut sich zunehmender Beliebtheit bei Entwicklern. In der Go-Sprache sind Variablen die grundlegendste Form der Datenspeicherung in Programmen. Der Umfang und der Lebenszyklus von Variablen sind für die Korrektheit und Effizienz des Programms sehr wichtig. Der Gültigkeitsbereich einer Variablen bezieht sich auf die Sichtbarkeit und Zugänglichkeit der Variablen, also darauf, wo auf die Variable zugegriffen werden kann. In der Go-Sprache ist der Variablenbereich in globale Variablen und lokale Variablen unterteilt. Globale Variablen sind außerhalb einer Funktion definierte Variablen und können überall im gesamten Programm verwendet werden

In Go beschränkt der Funktionsbereich die Sichtbarkeit von Variablen auf die Funktion, in der die Variable deklariert ist: Variablen innerhalb einer Funktion deklarieren: varnametype=value Der Gültigkeitsbereich ist auf den deklarierten Codeblock beschränkt, und andere Funktionen oder verschachtelte Blöcke können nicht auf diese Variablen zugreifen.

PHP5.6-Variablenbereich: So verwenden Sie das Schlüsselwort static zum Definieren statischer Variablen. In PHP bestimmt der Bereich einer Variablen die Sichtbarkeit und den Zugriffsbereich der Variablen. Eine statische Variable ist eine spezielle Art von Variable, deren Wert zwischen Funktionsaufrufen unverändert bleibt. In PHP5.6 und höher können Sie das Schlüsselwort static verwenden, um statische Variablen innerhalb von Funktionen und Klassenmethoden zu definieren. Die Merkmale statischer Variablen sind: Der Umfang statischer Variablen ist auf die Funktion oder Methode beschränkt, in der sie deklariert wird. Statische Variablen werden zwischen Funktions- oder Methodenaufrufen verwendet

PHP ist eine sehr beliebte Webentwicklungssprache, die es Entwicklern ermöglicht, dynamische Webanwendungen auf der Serverseite zu erstellen. In PHP ist eine Variable eine grundlegende Datenstruktur, die zum Speichern von Werten und Daten verwendet wird. In diesem Artikel wird die Verwendung von Variablen in PHP vorgestellt. Grundlegende Syntax von Variablen Die Syntax zum Deklarieren von Variablen in PHP ist sehr einfach. Variablennamen beginnen mit einem Dollarzeichen ($), gefolgt vom Variablennamen. Variablennamen können eine Kombination aus Buchstaben, Zahlen oder Unterstrichen sein, sie müssen jedoch mit einem Buchstaben oder einem Unterstrich beginnen. Der folgende Code deklariert beispielsweise einen Namen

Verwenden Sie die Funktion locals() von Python, um die Variablen des aktuellen Bereichs abzurufen. In Python ist locals() eine integrierte Funktion, die verwendet werden kann, um alle Variablen im aktuellen Bereich abzurufen. Diese Funktion gibt ein Wörterbuch zurück, das alle Variablennamen und entsprechenden Werte im aktuellen Bereich enthält. Während des Programmiervorgangs ist es sehr nützlich, die Variablen im aktuellen Bereich zu kennen, insbesondere während der Debugging-Phase, was uns helfen kann, den Wert und Status der Variablen anzuzeigen. Die Funktion locals() stellt genau diese Funktion bereit. Runter

Superglobale Variablen in PHP beziehen sich auf Variablen, auf die im globalen Bereich zugegriffen werden kann. Jede superglobale Variable ist ein assoziatives Array, das viele vordefinierte Variablen in PHP enthält, wie z. B. $_GET, $_POST, $_COOKIE usw. warten. Diese superglobalen Variablen sind in der Webentwicklung sehr wichtig, da sie eine wichtige Möglichkeit bieten, Informationen aus Benutzeranfragen abzurufen, z. B. Formulardaten, URL-Parameter usw. abzurufen. In diesem Artikel werden die häufig verwendeten superglobalen Variablen in PHP ausführlich vorgestellt, einschließlich ihrer Funktionen und ihrer Verwendung.
