我有一个类包含一组类。遍历数组并尝试运行 Class 函数时,出现错误:
Fatal error: Call to a member function getTDs() on a non-object on line 21
这是我的代码:
汽车类
class Cars {
private $cars = array();
public function __construct(){
$result = DB::getData("SELECT * FROM `cars` ORDER BY `name`");
foreach($result as $row){
$this->cars[] = new Car($row);
}
}
public function printTable(){
$html = '<table>';
for($i=0, $l=count($this->cars); $i<$l; $i++){
$html .= '<tr>';
$html .= $this->cars[$i]->getTDs();
$html .= '<td></td>';
$i++;
//print_r($this->cars[$i]);
//print_r($this->cars[$i]->getTDS());
$html .= $this->cars[$i]->getTDs(); //This is the supposed non-object
$html .= '<td></td>';
$i++;
$html .= $this->cars[$i]->getTDs();
$html .= '</tr>';
}
$html .= '</table>';
echo($html);
}
}
汽车类
class Car {
public $data;
public function __construct($data){
$this->data = $data;
}
public function getTDs(){
$html = '<td>'.$this->data['name'].'</td>';
return $html;
}
}
当print_r
在那个“非对象”(第 19 行)上使用时,我得到了这个:
Car Object
(
[data] => Array
(
[name] => 'Ferrari'
)
)
在print_r
“非对象”调用getTDs()
(第 20 行)上使用时,我得到以下信息:
<td>Ferrari</td>
那么,当我尝试将该结果添加到我的$html
变量中时,它会在下一行中断吗?