当我在下面运行这个代码块时,只有第一个数组元素被回显Name1 : 4334232323
,而不是回显所有元素。
我做错了什么?
public $name = array("Name1", "Name2", "Name3", "Name4");
public function display(){
foreach ($this->name as $names) {
return $names . ":" . mt_rand() .'<br>';
}
}
echo $names->display();
答案 0 :(得分:5)
return
将退出该方法。
您可以使用该变量来保存结果并最后返回。
public $name = array("Name1", "Name2", "Name3", "Name4");
public function display(){
$result = '';
foreach ($this->name as $names) {
$result .= $names . ":" . mt_rand() .'<br>';
}
return $result;
}
答案 1 :(得分:2)
foreach
语句将一次填充$names
一个条目,并循环访问与数组一样多的条目。这里的问题是您在循环期间return
仅在第一个名称后退出display()
函数。如果您希望它返回包含所有名称的单个字符串,您应该执行以下操作:
$output = "";
foreach ($name as $n) {
$output = $output . $n . ":" . mt_rand() . '<br>';
}
return $output;