存在类似的问题-我已经尝试了StackOverflow和Google的一些解决方案,但仍然没有运气-我无法捕获正确的语法。我有PHP类文件(PHP 7.4)与
public function indexAction()
{
if ($this->req->get('lang')) {
$lang = $this->req->get('lang');
file_put_contents('/var/www/html/app/controllers/control_indexaction.php', $lang); // selftest OK
// with every change of layout control file changes accordingly to en de it etc
// so $lang variable actually works and exists here
} else {
$lang = 'en';
}
}
public function searchAction()
{
$page = $this->req->get('page');
$q = $this->req->get('q');
file_put_contents('/var/www/html/app/controllers/control_searchaction.php', $lang); // for selftest
// other code of function - everything works
// where no $lang variable
}
问题是我需要将变量$lang
从函数indexAction()
传递到函数searchAction()
下使用-如果我只是复制同一行
$lang = $this->req->get('lang')
从函数indexAction()
到函数searchAction()
-它不工作,没有任何输出,所以$lang
变量实际上只存在于函数indexAction()
下。
在这种情况下,将有义务尝试传递变量$lang
的任何提示。
我认为这就是你想要达到的目标。在类中需要一个两个函数都可以访问的局部变量。
protected $lang = '';
public function indexAction()
{
if ($this->req->get('lang')) {
$lang = $this->req->get('lang');
file_put_contents('/var/www/html/app/controllers/control_indexaction.php', $lang); // selftest OK
// with every change of layout control file changes accordingly to en de it etc
// so $lang variable actually works and exists here
} else {
$this->lang = 'en';
}
}
public function searchAction()
{
$page = $this->req->get('page');
$q = $this->req->get('q');
file_put_contents('/var/www/html/app/controllers/control_searchaction.php', $this->lang); // for selftest
// other code of function - everything works
// where no $lang variable
}