php - php 中的 global 与 $GLOBALS

标签 php global

我知道最好使用按引用传递而不是这样做,但我想知道为什么这段代码(代码 1)可以正常工作,而另一个(代码 2)却不能?

代码1:

<?php

$var = 5;

function unset_var() {
     unset($GLOBALS['var']);
}

unset_var();
echo $var; //Notice: Undefined variable: var 
?>

代码2:

<?php

$var = 5;

function unset_var() {
     global $var;
     unset($var); // trying to unset $var
}

unset_var();
echo $var; // 5
?>

最佳答案

您的第二个代码有一个创建新变量的函数,并且您要取消设置该变量,而不是函数外部的变量。您的第一个代码仅操作 $GLOBALS 数组。

此外,您甚至应该首先避免考虑全局变量......

关于php - php 中的 global 与 $GLOBALS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35929668/

相关文章:

PHP:导入.SQL数据文件时的最大执行时间

php - 为什么 php artisan 什么都不迁移?

php - 使用 WAMP 调用未定义的函数 sqlsrv_connect()

php - 如何查看另一个 php 文件中定义的变量?

php - MySQL 存储过程 - 使用 PHP 解析

php - 未检测到 symfony 项目的 PHP 二进制文件

PHP: fatal error :调用非对象上的成员函数 insert()

r - 对全局环境中的每个数据帧应用操作

c - 如何让用户确定全局变量的数组大小?

php - get_the_id 与 post->ID 与 the_id/get_post_meta