ホームページ >バックエンド開発 >PHPチュートリアル >PHPの静的関数の$thisの問題
クラスA{
リーリー}
クラス B は A を拡張します{
}
$b = new B();
$b->subtell();//22 1 22;
エコー
最後の文は、オブジェクトコンテキストにないときに$thisを使用するとエラーを報告します
しかし、subMoney()が呼び出されるとき、$thisはバインドされず、$thisはbオブジェクトを指しますと実行すると、parent::sayMoney(); は静的に呼び出されるため、$this にバインドされません。sayMoney() を実行すると、なぜエラーが報告されるのでしょうか? b->subtell(); 同じですか?
リーリー
}クラス B は A を拡張します{
リーリー
$b = new B();
$b->subtell();//22 1 22;
';
しかし、subMoney()が呼び出されるとき、$thisはバインドされず、$thisはbオブジェクトを指しますと実行すると、parent::sayMoney(); は静的に呼び出されるため、$this にバインドされません。sayMoney() を実行すると、なぜエラーが報告されるのでしょうか? b->subtell(); 同じですか?
this
, 静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用, 你可以 classA::staticMethod()
或者 $a = new classA(); $a->staticMethod()
, 但其内部就是不能使用this
上の人の言う通りです、2番目に呼ばれる関数はstaticを使っているので$thisは使えません
private は、プライベートであり、継承されたクラスであっても、クラス内でのみアクセスを許可することを示します。
継承されたアクセスが許可されており、外部アクセスを望まない場合は、それを「保護」に変更できます。
さらに、そのクラスのインスタンスが作成され、$this はどのクラスを表します。