从外部类访问 ForEach 中的变量变量

Access Variable Variable in ForEach From Outside Class

提问人:Alexander Wigmore 提问时间:6/29/2014 更新时间:6/29/2014 访问量:185

问:

我有一个类,为了便于理解,它采用一个关联数组,循环遍历它并根据键分配一个变量名称,并为其赋值。 这在课堂上工作正常:

class showItems {

  static public function list(){
    foreach ($list as $name => $value) {
      $$name = $value;
    }
    // This works here
    echo $title; // This is the variable I want Which is being set in the foreach.
    break;

  }

}

上面的类工作正常,$title可以回声。 但是,从类外访问该变量是我没有任何运气的地方。我尝试了我能想到的所有类型的过程。

$showItems = new showItems();
$showItems::list();

// Cannot grasp what I need to do here to echo the value I want.
$showItems::list()->$title; // This returns "Trying to get property of non-object"

?>
PHP 变量 foreach variable-variables

评论

0赞 u_mulder 6/29/2014
函数返回什么?showItems

答:

1赞 Cilan 6/29/2014 #1

然后做一些事情并使列表起作用。$TestItems=new testItems()TestItems->list()return $title

1赞 Lajos Arpad 6/29/2014 #2
  1. 不要在你的方法中。echolist

  2. 您可以通过以下方式达到您的方法:staticlistclassshowItems::list()

  3. 您没有将参数传递给您的方法,这非常奇怪,正如您所说的那样list

采用关联数组

  1. 您的方法中似乎未初始化。$listlist

  2. 如果只想调用方法,则无需实例化。classstatic

  3. 目前尚不清楚您想做什么,所以请改写您的问题并给这篇文章写评论,所以我将编辑我的答案以进一步帮助您。

评论

0赞 Alexander Wigmore 6/29/2014
很明显,在类内运行的 foreach 循环中,我可以回显$title,所以我知道它正在工作,不用担心代码的其余部分。但是 - 我如何从类外部实际检索该$title变量?
0赞 Lajos Arpad 6/29/2014
您可以在 showItems 类中创建一个名为 $title 的静态成员,并为其创建一个 getter。但是,如果某些东西看似“有效”,那不一定是正确的。