Home  >  Article  >  Backend Development  >  How do static methods and non-static methods call each other in php?

How do static methods and non-static methods call each other in php?

coldplay.xixi
coldplay.xixiOriginal
2020-07-23 12:03:413534browse

How static methods and non-static methods call each other in PHP: 1. Non-static methods call static methods: they can be called in the form of [self] or the class name plus [::]; 2. Static methods call non-static methods. Static method: In a static method in a class, you need to instantiate the object and then call the method in the class.

How do static methods and non-static methods call each other in php?

How static methods and non-static methods call each other in php:

Static methods call non-static methods: In the static method in the class, you need to instantiate the object and then call the method in the class

Non-static method calls the static method: You can self or add to the class name ::form call

as in the following case:

<?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();

Run result:

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

Related learning recommendations:Getting started with PHP programming To master

The above is the detailed content of How do static methods and non-static methods call each other in php?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn