パブリック メソッドへのアクセスに関する問題。
class A{
public function pp(){
return 1300;
}
public function __construct(){
echo 1;
}
}
class B{
public function __construct(){
//echo A::__construct();
//echo A::pp();
}
}
$cc=new C;
?>
質問する:
pp はクラス A のパブリック メソッドなので、クラス名の形式を使用できます。 + ダブルコロンアクセス。問題は、クラス A の __construct メソッドも public にしたのに、クラス B で A::__construct() を呼び出すと、次のエラーが報告される理由です:
致命的エラー: 非静的メソッドD:wampwww1.php の 12 行目で互換性のないコンテキストから $this を想定しているため、A::__construct() を静的に呼び出すことはできません
次のような別の問題があります: [b][/b]
class A{
public $m=10;
}
この $m は public であるため、内部クラス アクセス、サブクラス アクセス、およびインスタンス アクセスをサポートする必要があります。
いくつかの本で、「どこからでも」アクセスできると書かれているのを見ました。他の関係のないクラス(Aと継承関係のないクラス)も含まれるのか、アクセスがサポートされている場合、どのようにアクセスすればよいのでしょうか?コードはどのように書かれているのでしょうか?
-----解決策---------
静的メソッドまたはインスタンス化
は、上記のコードによってインスタンス化されます。たとえば、次のように
にアクセスします。 クラスA{ パブリック $mm=10; } クラスB{ 保護された $classA; パブリック関数 __construct($number){ $this->classA=$number; echo $this->classA; } } $aa=新しいA; $bb=新しいB($aa->mm);