Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用常量为使用数组的模型对象定义属性_Php_Arrays_Performance_Object_Constants - Fatal编程技术网

在PHP中使用常量为使用数组的模型对象定义属性

在PHP中使用常量为使用数组的模型对象定义属性,php,arrays,performance,object,constants,Php,Arrays,Performance,Object,Constants,我的问题如下。我承认在PHP中使用数组可能比使用对象更好;就像我在很多帖子里读到的一样。但我工作的环境是,代码有很多行代码和很多数组;问题是,当我想修改或研究代码时,我不知道数组有哪些变量,例如: $person['age'] = 18; $person['name'] = 'Robert'; 如果可变人员有其他详细信息,我没有完整的信息;解决方案是使用调试器来观察数组$person中还有哪些其他信息 我考虑尝试使用类别(如模型)来表示对象。比如: class Person { con

我的问题如下。我承认在PHP中使用数组可能比使用对象更好;就像我在很多帖子里读到的一样。但我工作的环境是,代码有很多行代码和很多数组;问题是,当我想修改或研究代码时,我不知道数组有哪些变量,例如:

$person['age'] = 18;
$person['name'] = 'Robert';
如果可变人员有其他详细信息,我没有完整的信息;解决方案是使用调试器来观察数组$person中还有哪些其他信息

我考虑尝试使用类别(如模型)来表示对象。比如:

class Person {
    const AGE = 'age';
    const NAME = 'name';
}

$person[Person::AGE] = 18;
$person[Person::NAME] = 'Robert';
所以我会知道人有什么属性

问题是: 使用数组比使用对象好吗?
如果我更喜欢使用数组:是否有任何方法可以使用上面示例中的其他类来提高代码的可维护性?

为什么不干脆创建一个person类呢?然后,您就知道了它们都具有的属性

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
方法


使用类常量指定数组的键实际上离使用对象只差一小步。走那一步。您还可以避免担心必须检查密钥在数组中是否有效。您的对象可以为您设置一个默认值,您可以放心地使用该对象,知道它具有哪些属性。

为什么不干脆创建一个person类呢?然后,您就知道了它们都具有的属性

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
方法


使用类常量指定数组的键实际上离使用对象只差一小步。走那一步。您还可以避免担心必须检查密钥在数组中是否有效。您的对象可以为您设置一个默认值,您可以放心地使用该对象,知道它具有哪些属性。

为什么不干脆创建一个person类呢?然后,您就知道了它们都具有的属性

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
方法


使用类常量指定数组的键实际上离使用对象只差一小步。走那一步。您还可以避免担心必须检查密钥在数组中是否有效。您的对象可以为您设置一个默认值,您可以放心地使用该对象,知道它具有哪些属性。

为什么不干脆创建一个person类呢?然后,您就知道了它们都具有的属性

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
方法


使用类常量指定数组的键实际上离使用对象只差一小步。走那一步。您还可以避免担心必须检查密钥在数组中是否有效。您的对象可以为您设置一个默认值,您可以放心地使用该对象,知道它具有哪些属性。

@Schleis,谢谢您的回答。我有点担心在应用程序中使用always对象的性能,因为它是一个非常大的应用程序;还有很多地方使用数组,就像我在示例中写的那样;因此,我必须做两件事:1-尝试改进用户使用阵列的方式。2-探索是否大量使用数组中的对象不会影响性能。性能不应成为草率项目的借口。使用对象而不是数组直接增加最小的开销(如果有的话)。您可以使用对象来简化开发,减少开发时间并最小化