哪个更适合在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;
Run Code Online (Sandbox Code Playgroud)
假设某人没有出来并且表明课程太慢,看起来类似于胜利.
我不知道我应该接受哪个答案,我刚刚赞成所有这些答案.
我现在写了两个几乎相同的页面,一个使用2D数组(在发布此问题之前编写),现在一个使用类,我必须说该类产生更好的代码.我不知道将产生多少开销,但我怀疑它将与代码本身的改进相媲美.
感谢您帮助我成为更好的程序员.
您在上面构建的"类"是大多数人在其他语言中使用结构的原因.我不确定PHP中的性能影响是什么,但我怀疑在这里实例化对象的成本可能更高,如果只是一点点.
话虽这么说,如果成本相对较低,我认为管理对象要容易一些.
我只是根据标题和你的问题说出以下内容,但是:请记住,类也提供了方法和访问控制的优点.因此,如果您想确保人们不将权重更改为负数,您可以将该weight字段设为私有,并提供一些访问方法,例如getWeight()和setWeight().在里面setWeight(),你可以做一些值检查,如下:
public function setWeight($weight)
{
if($weight >= 0)
{
$this->weight = $weight;
}
else
{
// Handle this scenario however you like
}
}
Run Code Online (Sandbox Code Playgroud)