提问人:Alexander Wigmore 提问时间:6/29/2014 更新时间:6/29/2014 访问量:185
从外部类访问 ForEach 中的变量变量
Access Variable Variable in ForEach From Outside Class
问:
我有一个类,为了便于理解,它采用一个关联数组,循环遍历它并根据键分配一个变量名称,并为其赋值。 这在课堂上工作正常:
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"
?>
答:
1赞
Cilan
6/29/2014
#1
然后做一些事情并使列表起作用。$TestItems=new testItems()
TestItems->list()
return $title
1赞
Lajos Arpad
6/29/2014
#2
不要在你的方法中。
echo
list
您可以通过以下方式达到您的方法:
static
list
class
showItems::list()
您没有将参数传递给您的方法,这非常奇怪,正如您所说的那样
list
采用关联数组
您的方法中似乎未初始化。
$list
list
如果只想调用方法,则无需实例化。
class
static
目前尚不清楚您想做什么,所以请改写您的问题并给这篇文章写评论,所以我将编辑我的答案以进一步帮助您。
评论
0赞
Alexander Wigmore
6/29/2014
很明显,在类内运行的 foreach 循环中,我可以回显$title,所以我知道它正在工作,不用担心代码的其余部分。但是 - 我如何从类外部实际检索该$title变量?
0赞
Lajos Arpad
6/29/2014
您可以在 showItems 类中创建一个名为 $title 的静态成员,并为其创建一个 getter。但是,如果某些东西看似“有效”,那不一定是正确的。
评论
showItems