【发布时间】:2015-04-22 11:41:12
【问题描述】:
根据“全局关键字”部分中的PHP variable scope manual,我们有以下代码:
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
上面的脚本会输出3。
但在我的情况下是回显 2。
我误会了什么?
【问题讨论】:
-
无法重现:3v4l.org/Xq3kU 也许重启你的服务器。
-
它工作正常,对我来说..
-
出于任何我不知道的原因在 .php 文件中回显 3 和在 .phtml 文件中回显 2。谁能用几句话解释原因?
-
@FranMercaes 1. 您是否重新启动了服务器? 2.你有什么php版本? 3. 这是你的全部剧本吗? 4. 文件扩展名是什么?
-
@FranMercaes PHP 在那些日子里一直是程序化的,今天您可以决定是继续编写程序代码还是切换到面向对象的编程。这意味着有一些像
global这样的关键字不再需要了,我不建议学习那些旧东西。global始终表示全局/静态上下文,这意味着没有隔离组件,这对 OOP 程序员来说是不好的做法。但现在解决您的问题:尝试将您的 error_reporting 设置为 E_ALL。也许较新的 PHP 版本有全局标记已弃用,或者它只是您的代码中的一个错字?
标签: php