Define variables outside the PHP class

后端 未结 3 1359
感动是毒
感动是毒 2021-01-24 08:15

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         


        
相关标签:
3条回答
  • 2021-01-24 08:33

    print_r($GLOBALS['logInArray']);

    http://php.net/manual/en/reserved.variables.globals.php

    0 讨论(0)
  • 2021-01-24 08:43

    You can store the user in many ways and access it in more clean manner. You can store it in Zend_Registry and then use Zend_Registry::get('user') where you need to retrieve the user. You can also store it as a parameter of request object, and then in a controller simply do $user = $this->_getParam('user');

    If you need access to the user array in many controllers that inherit from the SystemadminController, what you can do is store it as a protected property of the SystemadminController (eg. protected $_user). Then all you need to do in child controllers is access $this->_user.

    0 讨论(0)
  • 2021-01-24 08:49

    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);  
        }
    }
    


    In the manual, see the section about Variable scope.


    Still, note that using global variables is not quite a good practice : in this case, your class is not independant anymore : it relies on the presence, and correct definition, of an external variable -- which is bad.

    Maybe a solution would be to :

    • pass that variable as a parameter to the method ?
    • or pass it to the constructor of your class, and store it in a property ?
    • or add a method that will receive that variable, and store it in a property, if you cannot change the constructor ?
    0 讨论(0)
提交回复
热议问题