我为客户创建了一个基础课程。
我之前没有这样做,想知道访问数据的最佳方式。
我是否应该为客户数组中的每个字段设置一个get()方法,或者我应该简单地将客户数组传递回来并访问该页面。
即。只需返回数组
class Customer {
protected $id;
protected $customer;
public function __construct($customer_id) {
$this->id = $customer_id;
$this->set_customer();
}
protected function set_customer() {
$query = mysql_query("SELECT * FROM customer WHERE id = '$this->id'");
$this->customer = mysql_fetch_row($query);
}
public function get_customer() {
return $this->customer;
}
}
为数组中的每个项创建一个方法
class Customer {
protected $id;
protected $customer;
public function __construct($customer_id) {
$this->id = $customer_id;
$this->set_customer();
}
protected function set_customer() {
$query = mysql_query("SELECT * FROM customer WHERE id = '$this->id'");
$this->customer = mysql_fetch_row($query);
}
public function get_customer_name() {
return $this->customer->customer_name;
}
...
...
}
与基于Tobias反馈的选项3相比:(不确定语法是否正确)
class Customer {
protected $id;
protected $customer;
public function __construct($customer_id) {
$this->id = $customer_id;
return $this->set_customer();
}
protected function set_customer() {
$query = mysql_query("SELECT * FROM customer WHERE id = '$this->id'");
return mysql_fetch_row($query);
}
}
答案 0 :(得分:1)
让set函数默认返回数据 - 如果你总是在之后使用数据,则不会造成任何伤害。
答案 1 :(得分:1)
我认为最好只返回所有数据的数组,而不是仅为每个字段制作逻辑。可能经常发生你需要多于一个字段,并且为此调用不同的方法会很烦人。
答案 2 :(得分:0)
在我看来,后一种方法更好,您可以从类中获得有关客户的所有信息,这与第一种方法不同,在第一种方法中,您只需返回客户行,然后在项目周围使用该行以获得更多信息客户的详细信息。
答案 3 :(得分:0)
使用get_和set_方法的好处是可以使类变得更聪明。使用您的类的视图编码器无法将变量设置为无效值,因为该类知道有效值是什么并且可以返回错误。您可以为每个字段添加valid_方法,以允许视图编码器查看结果是否有效。最终会得到更好,更一致的数据。