我希望在foreach循环期间将一些对象存储在数组中。问题是每次都创建一个唯一的对象。我必须有一些索引附加每个对象的名称。这就是我所拥有的:
function table_rows($html) {
$dom = new Zend_Dom_Query($html);
$table_rows = $dom->query('tr');
$check_array = array();
foreach ($table_rows as $key=>$table_row) {
($check_object . $key) = new check_class;
($check_object . $key)->check_method1($table_row);
($check_object . $key)->check_method2($table_row);
($check_object . $key)->check_method3($table_row);
$check_array[] = (check_object . $key);
}
}
我甚至关闭了吗?
答案 0 :(得分:2)
您可以使用variables:
function table_rows($html) {
$dom = new Zend_Dom_Query($html);
$table_rows = $dom->query('tr');
$check_array = array();
foreach ($table_rows as $key=>$table_row) {
$object = new check_class;
$object->check_method1($table_row);
$object->check_method2($table_row);
$object->check_method3($table_row);
$check_array[] = $object;
}
}
当然,为对象实例$object
命名变量并不是很具描述性,但我希望你明白这一点。
这是有效的,因为for
- 循环中的第一个赋值会覆盖" old"实例,因此$object
每次迭代都是唯一的。
答案 1 :(得分:1)
如果Jared Drake是对的,你的意思是唯一的数组键,而不是对象(变量)名称。
$dom = new Zend_Dom_Query($html);
$table_rows = $dom->query('tr');
$check_array = array();
foreach ($table_rows as $key=>$table_row) {
$check_object = new check_class;
$check_object->check_method1($table_row);
$check_object->check_method2($table_row);
$check_object->check_method3($table_row);
$check_array['check_object' . $key] = $check_object;
}
}
答案 2 :(得分:0)
也许我误解了这个问题,但你不能只使用array_push
方法将每个对象添加到foreach
循环中数组的末尾吗?