php 类中 全局变量,类名称中的PHP命名空间和全局变量问题

我不知道为什么我的HelperClass()下的全局$error返回为空,我不知道为什么我可以验证$class->错误确实已经填满了之前的数据.

在这种情况下,我不知道有关于命名空间的某些问题吗?请给我一些指示.

以下是一些相关的代码.

在主文件下

namespace Core;

$class = new ControllerClass();

$error = $class->error;

// verified that $error prints correctly here

include ViewFile.php;

在ViewFile.php下

$helper = new HelperClass();

// __autoload function took care of the include

在HelperClass下:

namespace Core\Skeleton;

class HelperClass {

public function __construct() {

global $error;

// $error != $class->error as defined earlier

// $error is empty here

}

解决方法:

如果您正在使用自动加载器或在另一个辅助函数中包含您的类,则$error变量从未在“全局”范围内声明.最终在一些地方,并得到了处置.

在为其分配值之前声明它已共享.

namespace Core;

$class = new ControllerClass();

global $error;

$error = $class->error;

此外,虽然共享变量本身没有任何问题.名称$error似乎有点过于通用.也许你可以使用一个不那么暧昧或更有条理的交换变量. $GLOBALS [“/ var / log”] [“controller_error”]或类似的东西.

标签:php,global-variables,namespaces

来源: https://codeday.me/bug/20190723/1514421.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值