我的问题如下。我接受可能使用数组而不是PHP中的对象可能对性能更好;就像我在许多帖子中读到的那样但我在一个环境中工作,其中代码有很多代码行和大量数组;问题是,当我想修改或研究代码时,我不知道数组有哪些变量,例如:
$person['age'] = 18;
$person['name'] = 'Robert';
如果该变量人员有其他详细信息,我没有完整的信息;解决方案是使用调试器来监视数组$ person的其他信息。
我想过尝试使用clases(比如模型)来表示对象。像:
class Person {
const AGE = 'age';
const NAME = 'name';
}
$person[Person::AGE] = 18;
$person[Person::NAME] = 'Robert';
所以我会知道Person有什么属性。
问题是: 使用数组比使用对象更好吗? 如果我更喜欢使用数组:是否有任何方法可以使用其他类(例如上面的示例)来提高代码的可维护性?
答案 0 :(得分:3)
为什么不让一个人上课呢?然后你知道他们将拥有的属性。
class Person {
protected $age;
protected $name;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function getAge() {
return $this->age;
}
public function getName() {
return $this->name;
}
这样,如果你想添加一些类型检查或格式化,你可以将它添加到这个类,而不是必须在代码库中的任何地方搜索数组的键所在的位置。
这些数据对象非常简单,但您可以非常轻松地整合功能,并且知道它们的位置会更容易维护。
如果具有person属性的数组表示不同的对象,则可以利用抽象类,以便知道它们具有该属性。或者只是指定该类具有getAge
或getName
方法的接口。
使用类常量指定数组的键实际上距离使用对象只有一小步。迈出这一步。您还可以避免担心必须检查密钥在阵列中是否有效。您的对象可以为您设置默认值,您可以放心地使用该对象来确定它具有哪些属性。