Php 我可以在控制器中使用全局变量吗
你好,我是Phalcon的新手,在控制器中使用全局变量时遇到问题。Php 我可以在控制器中使用全局变量吗,php,phalcon,Php,Phalcon,你好,我是Phalcon的新手,在控制器中使用全局变量时遇到问题。 我有一个带有全局变量的控制器$mobs,就是它 class ControllerBase extends Controller { public $mobs; public function initialize() { $user = $this -> session -> get("uid"); $user = Users::findFirstByu_id($user); if ($us
我有一个带有全局变量的控制器
$mobs
,就是它
class ControllerBase extends Controller {
public $mobs;
public function initialize() {
$user = $this -> session -> get("uid");
$user = Users::findFirstByu_id($user);
if ($user != null) {
if ($user -> f_id != null) {
$mobs = Mob::find(array("f_id=$user->f_id", "order" => "m_id"));
}
}
}
}
?>
根据我的理解,我可以设置这个,并从一个动作中调用它
public function mobsAction() {
foreach ($mobs as $mob) {
echo $mob->m_displayname;
}
}
但这给了我一个未定义的变量:mobs error
我想知道是否可以使用这样的变量,或者是否应该在每个操作中使用初始化代码。我猜您正在尝试在initialize函数中设置类变量$mobs,然后尝试在类函数mobsAction中迭代它们,要访问类变量mobs,您需要使用$this->mobs而不是$mobs,如下所示:
class ControllerBase extends Controller {
public $mobs;
public function initialize() {
$user = $this -> session -> get("uid");
$user = Users::findFirstByu_id($user);
if ($user != null) {
if ($user -> f_id != null) {
$this->mobs = Mob::find(array("f_id=$user->f_id", "order" => "m_id"));
}
}
}
public function mobsAction() {
foreach ($this->mobs as $mob) {
echo $mob->m_displayname;
}
}
}
您可以使用类中的任何位置的
$this
伪变量访问$mobs
。像$this->mobs
。阅读更多关于这部作品的信息。我在发布之前尝试过这个,但得到一个错误无法访问空的属性mobs
。我的错误是使用$this->$mobs=$stuff
而不是$this->mobs=$stuff