2016-08-26 19 views
-2

のクラスの概念を理解できません。私は間違っている可能性がある。宣言されていないプロパティに値を代入する

私はWordPressプラグインを見ました。クラスが定義され、クラスのプロパティが作成されなかったのは関数のみが作成されたことです。

class a 
{ 
    public function show(){ 
     echo "hello"; 
     $this->something = "xyz" ; 
     // What is this? How can "something" can be used here; 
     // as it is not defined in the class? 
    } 
} 

この例を考えてみましょうそして、そのクラスのオブジェクトが別のファイルで作成されました。

$obj = new a(); 
$obj->anothersomething = "abc"; // is it possible? 

啓発してください。

私の質問は次のとおりです。クラスの宣言されていないプロパティに値を割り当てることはできますか?

+0

** OOP **の基本を理解することをお勧めします。また、PHPを含むファイル。 –

+0

新しいファイルにそのファイル名を含めます。 –

+0

私はファイルを含める方法を知っています。私の質問は、値が宣言されていないプロパティにどのように割り当てられているかです。 @代理人 – Dherya

答えて

2

デフォルトのクラスの可視性はpublicです。
しかし、可視性を持つクラスメソッドを明示的に宣言することをお勧めします。

class Foo 
{ 
    public function a() {} 
    protected function b() {} 
    private function c() {} 
} 

@SougataBoseが述べたように、私はあなたがPHP OOP course

編集を走ることをお勧めしたい:

それは性質に来る - はい。それらを動的に作成することは可能です。ここでも、クラス・ボディのすべてのプロパティを宣言することをお勧めします。

+0

私を許してください。質問に固執してください。私は不必要な詳細を必要としません – Dherya

-1

この場合、それは関数ではなく、パブリッククラスのメソッドです。通常はpublic/protected/privateキーワードで定義する必要がありますが、スキップするとデフォルトではパブリックになります。したがって、別のファイルでこのクラスのインスタンスを作成し、publicメソッドshow()を呼び出します。このメソッドは、クラスインスタンスのプロパティを直接使用できます。または、$obj->anothersomething = "xxx"を使用して外部からこれらのプロパティを割り当てることができますが、これは適切ではありません。すべての割り当ては、このようなセッターメソッドを使用して行う必要があります。$obj->setProperty($value);

+0

私の質問は、 "何か"が宣言されていないことです。依然としてオブジェクトがその値を割り当てています。それは私の質問です – Dherya

関連する問題