浅谈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的数据拷贝,重新申请一块内存进行存储。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La portée des variables en PHP est divisée en portée locale (au sein de la fonction), globale (accessible dans le programme) et portée de classe (accessible dans l'instance de classe). Le mot-clé global peut déclarer des variables locales comme variables globales, et le mot-clé static peut déclarer des variables locales comme variables statiques, en conservant leurs valeurs entre les appels de fonction.

Dans Go, le cycle de vie de la fonction comprend la définition, le chargement, la liaison, l'initialisation, l'appel et le retour ; la portée des variables est divisée en niveau de fonction et au niveau du bloc. Les variables d'une fonction sont visibles en interne, tandis que les variables d'un bloc ne sont visibles que dans le bloc. .

Le langage Go est un langage open source à typage statique. Il présente les caractéristiques de simplicité, d'efficacité et de fiabilité et est de plus en plus apprécié par les développeurs. Dans le langage Go, les variables constituent la forme la plus élémentaire de stockage de données dans les programmes. La portée et le cycle de vie des variables sont très importants pour l'exactitude et l'efficacité du programme. La portée d'une variable fait référence à la visibilité et à l'accessibilité de la variable, c'est-à-dire à l'endroit où la variable est accessible. En langage Go, la portée des variables est divisée en variables globales et variables locales. Les variables globales sont des variables définies en dehors d'une fonction et peuvent être utilisées n'importe où dans l'ensemble du programme.

Dans Go, la portée de la fonction limite la visibilité des variables à la fonction où la variable est déclarée : Déclarez les variables dans une fonction : varnametype=value La portée est limitée au bloc de code déclaré et les autres fonctions ou blocs imbriqués ne peuvent pas accéder à ces variables.

Portée de la variable PHP5.6 : Comment utiliser le mot-clé static pour définir des variables statiques En PHP, la portée d'une variable détermine la visibilité et la portée d'accès de la variable. Une variable statique est un type spécial de variable qui conserve sa valeur inchangée entre les appels de fonction. En PHP5.6 et versions ultérieures, vous pouvez utiliser le mot-clé static pour définir des variables statiques dans les fonctions et les méthodes de classe. Les caractéristiques des variables statiques sont les suivantes : la portée des variables statiques est limitée à la fonction ou à la méthode dans laquelle elles sont déclarées. Les variables statiques sont utilisées entre les appels de fonction ou de méthode

PHP est un langage de développement Web très populaire qui permet aux développeurs de créer des applications Web dynamiques côté serveur. En PHP, une variable est une structure de données de base utilisée pour stocker des valeurs et des données. Cet article explique comment utiliser les variables en PHP. Syntaxe de base des variables La syntaxe de déclaration des variables en PHP est très simple. Les noms de variables commencent par un signe dollar ($), suivi du nom de la variable. Les noms de variables peuvent être une combinaison de lettres, de chiffres ou de traits de soulignement, mais ils doivent commencer par une lettre ou un trait de soulignement. Par exemple, le code suivant déclare un nom

Les variables superglobales en PHP font référence aux variables accessibles dans la portée globale. Chaque variable superglobale est un tableau associatif, qui contient de nombreuses variables prédéfinies en PHP, telles que $_GET, $_POST, $_COOKIE, etc. Ces variables superglobales sont très importantes dans le développement Web car elles constituent un moyen important d'obtenir des informations à partir des demandes des utilisateurs, telles que l'obtention de données de formulaire, l'obtention de paramètres d'URL, etc. Cet article présentera en détail les variables superglobales couramment utilisées en PHP, y compris leurs fonctions et comment les utiliser.

La portée variable d'une fonction Golang fait référence à la visibilité et au cycle de vie des variables à l'intérieur de la fonction. Selon la position et la portée des variables dans la fonction, les variables peuvent être divisées en trois types : variables locales, variables de paramètre et variables de valeur de retour. Introduction détaillée : 1. Les variables locales sont des variables définies à l'intérieur d'une fonction et ne peuvent être utilisées qu'à l'intérieur de la fonction, leur portée est limitée à l'intérieur de la fonction, y compris tous les blocs de code et les blocs de code imbriqués de la fonction. paramètres d'entrée reçus par la fonction et pouvant être utilisés à l'intérieur de la fonction. Leur portée est limitée à l'intérieur de la fonction, etc.
