在 PHP 类之外定义变量
我正在使用 zend.
I m using zend.
我想在控制器类之外定义以下代码 &在不同的操作中访问.
I want to define the below code outside the controller class & access in different Actions.
$user = new Zend_Session_Namespace('user');
$logInArray = array();
$logInArray['userId'] = $user->userid;
$logInArray['orgId'] = $user->authOrgId;
class VerifierController extends SystemadminController
{
public function indexAction()
{
// action body
print_r($logInArray);
}
}
但它不会在索引函数中打印此数组,另一方面它会在类之外显示此数组.
But it does not print this array in index function on the other hand it show this array outside the class.
怎么可能.谢谢.
推荐答案
要从方法/函数内部访问全局变量,您必须在方法/函数内部将其声明为 global
:
To access a global variable from inside a method/function, you have to declare it as global
, inside the method/function :
class VerifierController extends SystemadminController
{
public function indexAction()
{
global $logInArray;
// action body
print_r($logInArray);
}
}
在手册中,请参阅关于变量范围.
不过,请注意,使用全局变量并不是一个很好的做法:在这种情况下,您的类不再独立:它依赖于外部变量的存在和正确定义——这是坏.
也许解决方案是:
- 将该变量作为参数传递给方法?
- 或将其传递给类的构造函数,并将其存储在属性中?
- 或者添加一个方法来接收该变量,并将其存储在一个属性中,如果您无法更改构造函数?
相关文章