当前位置:  开发笔记 > 编程语言 > 正文

类与2D数组

如何解决《类与2D数组》经验,为你挑选了1个好方法。

哪个更适合在PHP,2D数组或类中使用?我已经列举了一个我的意思的例子.

// Using a class
class someClass
{
    public  $name;
    public  $height;
    public  $weight;

    function __construct($name, $height, $weight)
    {
        $this -> name       = $name;
        $this -> height = $height;
        $this -> weight = $weight;
    }
}

$classArray[1] = new someClass('Bob', 10, 20);
$classArray[2] = new someClass('Fred', 15, 10);
$classArray[3] = new someClass('Ned', 25, 30);


// Using a 2D array
$normalArray[1]['name'] = 'Bob';
$normalArray[1]['height']   = 10;
$normalArray[1]['weight']   = 20;

$normalArray[2]['name'] = 'Fred';
$normalArray[2]['height']   = 15;
$normalArray[2]['weight']   = 10;

$normalArray[3]['name'] = 'Ned';
$normalArray[3]['height']   = 25;
$normalArray[3]['weight']   = 30;

假设某人没有出来并且表明课程太慢,看起来类似于胜利.

我不知道我应该接受哪个答案,我刚刚赞成所有这些答案.


我现在写了两个几乎相同的页面,一个使用2D数组(在发布此问题之前编写),现在一个使用类,我必须说该类产生更好的代码.我不知道将产生多少开销,但我怀疑它将与代码本身的改进相媲美.

感谢您帮助我成为更好的程序员.



1> Brian Warsha..:

您在上面构建的"类"是大多数人在其他语言中使用结构的原因.我不确定PHP中的性能影响是什么,但我怀疑在这里实例化对象的成本可能更高,如果只是一点点.

话虽这么说,如果成本相对较低,我认为管理对象要容易一些.

我只是根据标题和你的问题说出以下内容,但是:请记住,类也提供了方法和访问控制的优点.因此,如果您想确保人们不将权重更改为负数,您可以将该weight字段设为私有,并提供一些访问方法,例如getWeight()setWeight().在里面setWeight(),你可以做一些值检查,如下:

public function setWeight($weight)
{
    if($weight >= 0)
    {
        $this->weight = $weight;
    }
    else
    {
        // Handle this scenario however you like
    }
}

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有