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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:00:20
オリジナル
901 人が閲覧しました

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

<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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート