-1

我不确定如何将其总结为谷歌问题,但也许详细解释它会给我更好的帮助。

我正在尝试在 PHP 中找到与在 python 中设置插槽的等效项

Python:

class Node:
    slots = ('name','desc','blah')
    def __init__(self, name, desc, blah):
        self.name = name
        self.desc = desc
        self.blah = blah

跑过一个数组,我讨厌试图记住一些东西在什么位置并做 array[3] 或者这样做 array.blah 会容易得多。这在 PHP 中是否可行。

4

2 回答 2

3

使用关联数组:

$slots = array(
    'name' => $name,
    'desc' => $desc,
    'blah' => $blah
);

然后你可以做echo $slots['name'];

干杯

于 2012-12-05T21:20:06.867 回答
1

上述方法只有一个问题,那就是您可以在数组中动态添加新值。我不确定插槽是如何工作的,因为我不熟悉 python,但查看示例键名、desk 和 blah 应该是常量并且它们是预定义的。在这种情况下,我认为最好的方法是使用班级成员,例如

      Class Node{
    private $name;
    private $desc;
    private $blah;

    public function __construct($name, $desc, $blah){
    $this->name = $name;
    $this->desc = $desk;
    $this->blah = $blah;
    }
}

您当然可以将变量公开,但这不是最好的方法,相反,您可能应该为每个变量实现 getter 和 setter。

于 2012-12-05T21:29:57.523 回答