0

在我的程序中,一个对象代表数据库中的一行,它具有所有相同的数据以及 setter 和 getter 等。

每列的值都保存到对象内的一个属性中。例如:

class Person extends Base {
  protected $name;
  protected $age;

  /* Setters & Getters */
}

在 Base 类上,我有一个 Save() 方法,它将根据 Person 类的属性创建一个更新查询。我无法弄清楚如何将属性传递给 Base 的 Save() 方法。我的想法很少,但我对它们不太满意。

1.为所有属性添加前缀。像“db_”:

protected $db_id;
protected $db_age;

Loop get_object_vars($this) and check the prefix.
  • 令人困惑
  • 丑陋的

2.添加一个数组,其中包含与数据库中的行相关的所有属性名称

protected $db_properties = array("id", "age");
protected $id;
protected $age;

Loop get_object_vars($this) and check if they are in the $db_properties array.
Or loop the $db_properties and get the properties.
  • 双重相同数据

3. 假设所有属性总是与数据库中的行相关。

Loop get_object_vars($this).
  • 不能为其他东西添加属性

还有其他方法可以做到这一点吗?

4

2 回答 2

0

为什么需要将其传回给Basetho?当你实例化Person,Base成为其中的一部分。所以如果Base定义了一个变量,Person也会有那个变量。

于 2013-11-02T21:20:43.530 回答
0

I'm not sure I understood the question, but have you considered a dictionary? http://us2.php.net/manual/en/language.types.array.php

于 2013-11-02T21:03:52.790 回答