Maison développement back-end tutoriel php PHP的一个全局变量如其引用了一个局部变量的地址

PHP的一个全局变量如其引用了一个局部变量的地址

Jun 13, 2016 pm 01:13 PM
abc echo global quot

PHP的一个全局变量如果引用了一个局部变量的地址

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
    $b = "dasdf";
    function abc(){
        $a = "abc";
        global $b;
        $b = &$a;
        echo $b."inner;";
    }
    abc();
    echo $b.";";

Copier après la connexion


在函数内部输出b的时候,是abc,但是离开函数后,输出b,又恢复成dasdf的初始值,这是怎么回事呢?按理说,引用了一个局部变量的地址,这个局部变量销毁后,b的值应该是空啊。

------解决方案--------------------
在手册:
http://www.php.net/manual/zh/language.references.whatdo.php#example-251
如果在一个函数内部给一个声明为 global 的变量赋于一个引用,该引用只在函数内部可见。可以通过使用 $GLOBALS 数组避免这一点。
原因如下:
把 global $var; 当成是 $var =& $GLOBALS['var']; 的简写。从而将其它引用赋给 $var 只改变了本地变量的引用。
------解决方案--------------------
$b = "dasdf";
function abc(){
$a = "abc";
global $b; //这是对 $GLOBALS['b'] 的引用
$b = &$a;
$GLOBALS['bb'] = & $a;
echo $b."inner;";
}
abc(); //abcinner;
echo $b.";"; //dasdf;
echo $bb; //abc

------解决方案--------------------
记住php的两个概念,所有变量都是指针,所有作用域不同的变量是不同的变量,即可
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Cinq projets open source sélectionnés en langage Go pour vous emmener explorer le monde de la technologie Cinq projets open source sélectionnés en langage Go pour vous emmener explorer le monde de la technologie Jan 30, 2024 am 09:08 AM

À l'ère actuelle de développement technologique rapide, les langages de programmation poussent comme des champignons après la pluie. L'un des langages qui a beaucoup retenu l'attention est le langage Go, apprécié par de nombreux développeurs pour sa simplicité, son efficacité, sa sécurité de concurrence et d'autres fonctionnalités. Le langage Go est connu pour son écosystème solide avec de nombreux excellents projets open source. Cet article présentera cinq projets open source sélectionnés en langage Go et amènera les lecteurs à explorer le monde des projets open source en langage Go. KubernetesKubernetes est un moteur d'orchestration de conteneurs open source pour l'automatisation

Go : les essentiels du développement linguistique : 5 recommandations de framework populaires Go : les essentiels du développement linguistique : 5 recommandations de framework populaires Mar 24, 2024 pm 01:15 PM

"Go Language Development Essentials : 5 recommandations de framework populaires" En tant que langage de programmation rapide et efficace, le langage Go est favorisé par de plus en plus de développeurs. Afin d'améliorer l'efficacité du développement et d'optimiser la structure du code, de nombreux développeurs choisissent d'utiliser des frameworks pour créer rapidement des applications. Dans le monde du langage Go, il existe de nombreux excellents frameworks parmi lesquels choisir. Cet article présentera 5 frameworks de langage Go populaires et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et utiliser ces frameworks. 1.GinGin est un framework Web léger avec une rapidité

Développement Laravel : Comment implémenter la communication WebSockets à l'aide de Laravel Echo et Pusher ? Développement Laravel : Comment implémenter la communication WebSockets à l'aide de Laravel Echo et Pusher ? Jun 13, 2023 pm 05:01 PM

Laravel est un framework PHP populaire, hautement évolutif et efficace. Il fournit de nombreux outils et bibliothèques puissants qui permettent aux développeurs de créer rapidement des applications Web de haute qualité. Parmi eux, LaravelEcho et Pusher sont deux outils très importants grâce auxquels la communication WebSockets peut être facilement implémentée. Cet article détaillera comment utiliser ces deux outils dans les applications Laravel. Que sont les WebSockets ? WebSockets

Explication détaillée du rôle et de l'utilisation du mot-clé echo en PHP Explication détaillée du rôle et de l'utilisation du mot-clé echo en PHP Jun 28, 2023 pm 08:12 PM

Explication détaillée du rôle et de l'utilisation du mot-clé echo en PHP PHP est un langage de script côté serveur largement utilisé dans le développement Web. Le mot-clé echo est une méthode utilisée pour générer du contenu en PHP. Cet article présentera en détail la fonction et l'utilisation du mot-clé echo. Fonction : La fonction principale du mot-clé echo est de transmettre du contenu au navigateur. Dans le développement Web, nous devons présenter dynamiquement les données sur la page frontale. À ce stade, nous pouvons utiliser le mot-clé echo pour afficher les données sur la page. e

Xiaomi Mesh System AC1200 : lancement mondial d'un nouveau système maillé Wi-Fi pouvant atteindre 370 mètres carrés Xiaomi Mesh System AC1200 : lancement mondial d'un nouveau système maillé Wi-Fi pouvant atteindre 370 mètres carrés Jun 19, 2024 pm 12:13 PM

Xiaomi a introduit un autre système maillé WLAN pour le marché mondial. Après la mise en vente du routeur AC1200 (environ 69 euros sur Amazon) dans ce pays, le Xiaomi Mesh System AC1200 a été annoncé. Le nouveau produit a récemment été répertorié sur

Quels sont les frameworks Golang les plus populaires sur le marché ? Quels sont les frameworks Golang les plus populaires sur le marché ? Jun 01, 2024 pm 08:05 PM

Les frameworks Go les plus populaires actuellement sont : Gin : framework web léger et performant, simple et facile à utiliser. Echo : un framework Web rapide et hautement personnalisable qui fournit un routage et un middleware hautes performances. GorillaMux : Un multiplexeur rapide et flexible qui offre des options de configuration de routage avancées. Fibre : un framework Web hautes performances optimisé pour les performances qui gère un nombre élevé de requêtes simultanées. Martini : un framework Web modulaire avec une conception orientée objet qui fournit un riche ensemble de fonctionnalités.

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Explorez le framework du langage Go : 5 choix à ne pas manquer ! Explorez le framework du langage Go : 5 choix à ne pas manquer ! Feb 19, 2024 pm 02:29 PM

En tant que langage de programmation rapide et efficace, le langage Go a toujours été privilégié par les programmeurs. Dans l'écosystème du langage Go, les frameworks jouent un rôle essentiel en aidant les développeurs à créer des applications plus rapidement. Cet article présentera cinq frameworks de langage Go pour vous permettre de comprendre leurs caractéristiques et leur utilisation. 1. Framework Gin Le framework Gin est un framework Web léger avec des caractéristiques rapides et hautes performances. Utilisez le framework Gin pour créer rapidement des API et des applications Web RESTful. Voici un exemple de code simple :

See all articles