PHPクラスのメンバ変数が宣言されていない

WBOY
リリース: 2016-06-23 14:27:08
オリジナル
1090 人が閲覧しました

php オブジェクト指向

class test{    private $name;    private $sex;    function __construct(){        $this->aaa='aaa';    }}$test=new test();$reflect=new ReflectionClass($test);$pro=$reflect->getDefaultProperties();print_r($pro);//打印结果:Array ( [name] => [sex] => )echo $test->aaa;//打印结果:aaa
ログイン後にコピー


このテスト クラスでは、2 つのメンバー変数 $name と $sex が宣言されていますが、コンストラクターでは変数 $aaa が宣言され、クラスが初期化され、リフレクション クラスが使用されます。デフォルトのメンバーを出力する この属性には宣言されたメンバー変数属性が 2 つしかありませんが、印刷クラスの $aaa 変数は引き続き結果を出力できます。

クラスのメンバー変数は宣言する必要がないのですが、関数内で宣言することはできますか? 違いは何ですか?

ディスカッションへの返信(解決策)

動的に生成されたオブジェクトのプロパティはグローバルであり、宣言なしでアクセスできる変数と一致しています
しかし、一部の学者からの批判により、PHPはこの軽量な表現方法を徐々に放棄し始めました
したがって、これは行わないようにすべきです

動的に生成されたオブジェクトのプロパティはグローバルであり、宣言せずにアクセスできる変数と同じ意味です
しかし、一部の学者からの批判により、PHP は徐々にこの軽量化を放棄し始めました表現方法
したがって、これを行わないようにすべきです

http://tanteng.sinaapp.com/2013/11/php-reflectionclass-object/

ありがとう、より完全な答えがあります。

http://tanteng.sinaapp.com/2013/11/php-reflectionclass-object/

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート