0

このようなことをすることは可能ですか?

class foo {
    private $private = 'A';
}

class bar extends foo {
    echo $this->private;
}

bar returns null...

子クラスが変数$privateにアクセスできなかった場合は本当に欲しいのですが、クラスベースの開発のパラダイムだけに基づいてそれが可能かどうかはわかりません。

プライベートプロパティは、私が探している機能を提供しません。

これは正確なPHPコードではないことを理解していますが、これは単なる例です;)

4

2 に答える 2

2

これはすでにそれがどのように機能するかです。ドキュメントを参照してください:

プロパティまたはメソッドの可視性は、宣言の前にキーワードpublic、protected、またはprivateを付けることで定義できます。publicと宣言されたクラスメンバーはどこからでもアクセスできます。保護されていると宣言されたメンバーには、クラス自体の内部、および継承されたクラスと親クラスからのみアクセスできます。プライベートとして宣言されたメンバーは、メンバーを定義するクラスによってのみアクセスできます

ここで例を参照してください:http://codepad.org/Yz4yjDft

プライベートプロパティは、私が探している機能を提供しません。

私にはそれがまさにあなたが望むもののようです。そうでない場合は、詳しく説明してください。

于 2011-05-08T01:55:43.213 に答える
0
class foo {
    protected $private = 'A';
}

class bar extends foo {
    function __construct() {
        echo $this->private;
    }
}
 new bar();

// will echo 'A' 

関数内で処理を行う必要があります。クラス内でエコーを行うことはできません。

編集:

protectedでは、子孫クラスでのみ変数を使用できます。それがあなたが探しているものなら

于 2011-05-08T01:56:18.127 に答える