ホームページ  >  記事  >  バックエンド開発  >  静的メソッドは PHP クラスの非静的メソッドをどのように呼び出しますか?

静的メソッドは PHP クラスの非静的メソッドをどのように呼び出しますか?

coldplay.xixi
coldplay.xixiオリジナル
2020-07-11 15:30:532498ブラウズ

PHP クラスの静的メソッドは非静的メソッドを呼び出します: まず、クラスの静的メソッドでオブジェクトをインスタンス化する必要があります。次にクラスのメソッドが呼び出され、コードは [self:: staticFun(); A::staticFun()]。

静的メソッドは PHP クラスの非静的メソッドをどのように呼び出しますか?

PHP クラスの静的メソッドは非静的メソッドを呼び出します:

非静的メソッドは静的メソッドを呼び出します: はいself またはクラス名に :: を加えたものは、次の場合のように

と呼ばれます:

<?php
class A{
    public function noneStaticFun(){
        echo  __CLASS__." none static function<br/>";
    }
    public static function staticFun(){
        echo __CLASS__." static function<br/>";
        //静态方法调用非静态方法,需要实例化对象然后再调用对象中的非静态方法
        (new A())->noneStaticFun();
    }
    public function testCallStaticFun(){
        echo "call static function<br/>";
        //调用本类的静态方法,使用 self关键字或者类名
        self::staticFun();
        //A::staticFun(); //也可以使用这种方式
        //调用其它类的静态方法,直接使用类名::方法名的形式调用
        B::myStaticFun();
    }
}
class B{
    public static function myStaticFun(){
        echo __CLASS__." static function<br/>";
    }
}
//演示
$testA = new A();
$testA->testCallStaticFun();
A::staticFun();

実行結果:

call static function
A static function
A none static function
B static function
A static function
A none static function

関連する学習の推奨事項: PHP プログラミングの入門から熟練度まで

以上が静的メソッドは PHP クラスの非静的メソッドをどのように呼び出しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。