ホームページ  >  記事  >  バックエンド開発  >  パブリック メソッド アクセスに関する問題

パブリック メソッド アクセスに関する問題

WBOY
WBOYオリジナル
2016-06-13 13:12:521079ブラウズ

パブリック メソッドへのアクセスに関する問題。
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と継承関係のないクラス)も含まれるのか、アクセスがサポートされている場合、どのようにアクセスすればよいのでしょうか?コードはどのように書かれているのでしょうか?



-----解決策---------
静的メソッドまたはインスタンス化

は、上記のコードによってインスタンス化されます。たとえば、次のように

PHP コード
 にアクセスします。

クラスA{
    パブリック $mm=10;
}
クラスB{
    保護された $classA;
    パブリック関数 __construct($number){
        $this->classA=$number;
        echo $this->classA;
    }
}
$aa=新しいA;
$bb=新しいB($aa->mm);
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。