我正在尝试将我的程序代码转换为 oop。
<?php
$dbc = get_dbc();
$info = mysqli_query($dbc, "SELECT info_id, info_title FROM text") or die("Error: ".mysqli_error($dbc));
while ($info_row = mysqli_fetch_array($info))
{
$info_id = $info_row['info_id'];
$info_title = $info_row['info_title'];
?>
<div style="width: 100%;">
<div style="float: left;">
<?php echo $info_id; ?>
</div>
<div style="float: left;">
<?php echo $info_title; ?>
</div>
<div style="clear: both;"></div>
</div>
<?php } ?>
我对没有 HTML 样式的类/对象的不完整尝试:
<?php
class InfoTest {
private $info_id;
private $info_title;
public function __construct() {
$dbc = get_dbc();
$info = $dbc->query ("SELECT info_id, info_title FROM text");
if ($dbc->error) {
printf("Error: %s\n", $dbc->error);
}
while ($info_row = $info->fetch_array())
{
$info_id = $info_row['info_id'];
$info_title = $info_row['info_title'];
}
$info->free();
$this->info_id = $info_id;
$this->info_title = $info_title;
}
public function setInfoID() {
$this->info_id = $info_id;
}
public function getInfoID() {
return $this->info_id;
}
public function setInfoTitle() {
$this->info_title = $info_title;
}
public function getInfoTitle() {
return $this->info_title;
}
public function __destruct() {
}
}
?>
<?php
$display = new InfoTest();
echo $display->getInfoID();
echo $display->getInfoTitle();
?>
我的程序代码打印出来:1 一 2 二。
我的 oop 代码打印出来:2 两个
据我了解,oop 以这种方式打印出来,因为 $info_id 和 $info_title 不是数组,并且只打印出最后存储的信息。
所以,如果我改变:
$info_id = $info_row['info_id'];
$info_title = $info_row['info_title'];
至:
$info_id[] = $info_row['info_id'];
$info_title[] = $info_row['info_title'];
并打印数组,它显示了我想要的所有信息,但是如何以非数组形式显示呢?
到目前为止我正在做的事情是正确的还是我正在接近这个错误?