访问类中数组的最佳实践

时间:2010-05-26 06:50:20

标签: php class arrays

我为客户创建了一个基础课程。

我之前没有这样做,想知道访问数据的最佳方式。

我是否应该为客户数组中的每个字段设置一个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);
  }
}

4 个答案:

答案 0 :(得分:1)

让set函数默认返回数据 - 如果你总是在之后使用数据,则不会造成任何伤害。

答案 1 :(得分:1)

我认为最好只返回所有数据的数组,而不是仅为每个字段制作逻辑。可能经常发生你需要多于一个字段,并且为此调用不同的方法会很烦人。

答案 2 :(得分:0)

在我看来,后一种方法更好,您可以从类中获得有关客户的所有信息,这与第一种方法不同,在第一种方法中,您只需返回客户行,然后在项目周围使用该行以获得更多信息客户的详细信息。

答案 3 :(得分:0)

使用get_和set_方法的好处是可以使类变得更聪明。使用您的类的视图编码器无法将变量设置为无效值,因为该类知道有效值是什么并且可以返回错误。您可以为每个字段添加valid_方法,以允许视图编码器查看结果是否有效。最终会得到更好,更一致的数据。