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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM