attr2;attr2"/> attr2;attr2">

ホームページ >バックエンド開発 >PHPチュートリアル >初心者として、クラス属性について質問があります。

初心者として、クラス属性について質問があります。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 12:00:20889ブラウズ

初心者がクラス属性について質問したいのですが、

<br />class mycla{<br />  public $attr1;<br />}<br />$a = new mycla();<br />$a -> attr2 = "123";<br />echo $a -> attr2;<br />

attr2 がクラスに定義されていませんが、このように実行すると、プログラムは 123 を出力し、警告は表示されません。これは何を意味するのでしょうか。これは attr1 のみを定義したということですか? このプロパティ
------解決策-----
これは正常です!
$a = 1;
$a は事前に定義されていないのですが、値を代入することもできないのでしょうか?

変数の代入が定義されているのに、クラス属性を定義しないのはなぜでしょうか?
それはスコープを持つ単なる変数ではないでしょうか?
------解決策---------
php クラスの未定義プロパティを呼び出す場合、PHP属性が自動的に作成され、デフォルトのアクセス許可は public です
これが禁止されている場合は、クラスの __set() メソッドをオーバーロードできます
-----解決策---- - ---------------
クラスには独自の __set および __get マジック メソッドがあるためです。
アクセスできないプロパティに値を割り当てる場合、__set() が呼び出されます。
アクセスできない属性の値を読み取る場合、__get() が呼び出されます。


つまり、このように書くことができます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。