Static and Non-Static Calling in PHP

前端 未结 3 1031
不思量自难忘°
不思量自难忘° 2021-02-07 14:19

ok I have this code, that I\'m studying

 class scope{

    function printme(){
        return \"hello\";
    }

    public static function printme(){
        ret         


        
3条回答
  •  抹茶落季
    2021-02-07 14:21

    As non-static function has a lot of operations on it, I also need to call it as a static function so that I will not need to instantiate the class. Is this possible? or I really needed to rewrite the function to another function or class?

    If you need it static, then make it static. If you need it not, then keep it the way it is. It is possible from within non-static function to call static function.

    class Foo
    {
        public function bar()
        {
            Foo::zex();
    
            // or self::zex() or even $this->zex();
        }
    
        public static function zex()
        {
        }
    }
    
    
    $foo    = new Foo;
    $foo->bar();
    

    Ant the other way around.

    class Foo
    {
        public function bar()
        {
    
        }
    
        public static function zex()
        {
            $foo    = new Foo;
            $foo->bar();
        }
    }
    

    When you should do it or should you do it at all is another question. The most common use of the latter is probably the Singleton pattern.

提交回复
热议问题