-1

これをGoogleの質問として要約する方法がよくわかりませんが、詳細に説明することでより良い助けが得られるかもしれません.

PHPで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

上記のアプローチには1つだけ問題があり、配列内でその場で新しい値を追加できるということです。私はPythonに精通していないため、スロットがどのように機能するかはわかりませんが、例を見ると、キー名、デスク、およびblahは一定であり、事前定義されています。その場合の最善のアプローチは、私の意見では次のようなクラスのメンバーを使用することです。

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

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

もちろん、変数を公開することもできますが、それが最善のアプローチではありません。代わりに、変数ごとにゲッターとセッターを実装する必要があります。

于 2012-12-05T21:29:57.523 に答える