这是我的代码:
class something {
public function one() {
$choices = array(
'something' = array(
'name' => 'test';
),
'something_two' = array(
'name' => 'test_one';
),
);
}
public function two() {
?>
<select>
<?php
foreach ($this->function_one() as $choice) {
echo '<option value="'.$choice['name'].'">'.$choice['name'].'</option>';
}
?>
</select>
<?php
}
}
问题是:
如何从另一个函数中获取一个变量并将其放入foreach循环?
我收到此错误:
警告:为中的foreach()提供了无效的参数
答案 0 :(得分:0)
我还没有测试过,但是我更正了我在代码中看到的所有错误,请尝试一下。
您的代码没有函数返回任何东西。 foreach循环还以不同的方式调用函数,我删除了工作的“函数”,并用$this->one()
替换了它。
class something {
public function one(){
$choices = array(
'something' = array(
'name' => 'test';
),
'something_two' = array(
'name' => 'test_one';
),
);
return $choices;
}
public function two(){
?>
<select>
<?php
foreach ($this->one() as $choice ){
echo '<option value="'.$choice['name'].'">'.$choice['name'].'</option>';
}
?>
</select>
<?php
}
}
答案 1 :(得分:0)
首先,要注意几点:
=
至=>
并删除分号)。我现在将提供几个使用不同技术的工作代码块。
代码1:(Demo)
class something {
public function one() {
$choices = array(
'something' => array(
'name' => 'test'
),
'something_two' => array(
'name' => 'test_one'
)
);
return $choices;
}
public function two() {
echo "<select>";
echo "<option>" , implode("</option><option>", array_column($this->one(), 'name')) , "</option>";
echo "</select>";
}
}
$foo = new something();
$foo->two();
代码2:(Demo)
class something {
public $choices = array();
public function __construct() {
$this->choices = array(
'something' => array(
'name' => 'test'
),
'something_two' => array(
'name' => 'test_one'
)
);
}
public function two() {
echo "<select>";
echo "<option>" , implode("</option><option>", array_column($this->choices, 'name')) , "</option>";
echo "</select>";
}
}
$foo = new something();
$foo->two();
是从函数one()
显式调用two()
还是使用构造函数在类中(通过对象$this
声明变量(属性)取决于您的项目要求。我将避免在php手册中写出大量引号;我只建议您阅读一些有关类和方法的基本教程。