我有像
这样的php类class fiber {
public $name
}
$array = array('1','2','3');
我需要为班级fiber
我尝试了以下
foreach($array as $counts) {
$obj = new fiber();
}
但它没有工作如何使用foreach
答案 0 :(得分:3)
你每次迭代都会覆盖$obj
。相反,这样做:
$myArray = array();
foreach($array as $counts) {
array_push($myArray, new fiber());
}
现在,您可以使用fiber
等访问每个$myArray[0]
这是一个更完整和通用的示例(注意在PHP 5.4之前不支持使用[]
。)
class Fiber {
private $x;
public function __construct($x) {
$this->x = $x;
}
public function getX() {
return $this->x;
}
}
$x = [1,2,3];
$Fibers = [];
foreach($x as $v) {
$Fibers[]= new Fiber($v);
}
echo $Fibers[0]->getX(); //1
echo $Fibers[1]->getX(); //2
echo $Fibers[2]->getX(); //3
我真的更喜欢$array[]= 'value'
而不是array_push($array, 'value');
答案 1 :(得分:1)
这样您就可以用新的光纤类对象替换当前的数组值:
$array = array('1','2','3');
foreach($array as &$val) {
$val = new fiber();
}
或者您可以跳过填充阵列的部分并执行以下操作:
$array = array();
for ($i = 0; $i < 3; $i++)
$array[$i] = new fiber();
答案 2 :(得分:-1)
你可以这样做:
$index = 0;
foreach($array as $counts) {
${"obj$index"} = new fiber();
$index++;
}
你将有三个对象$ obj0,$ obj1,$ obj2。