PHP class类方法中的::调用方式?

img

以为

1,::一般是用在静态方法、静态变量的调用,此时类不需要实例化。

2,而用->时,必须要将类进行实例化(或者在类的内部调用也可以)。

所以你第二种就会错误

你可以参考这篇文章学习一下php的=>和->以及::的用法

PHP中=>和->以及::的用法-php教程-PHP中文网 1、=>的用法   在php中数组默认键名是整数,也可以自己定义任意字符键名(最好是有实际意义),如:   $css=array('style'=>'0',‘color’=>‘green‘);   则$css['style']=='0',$css['color']=='green'。 https://www.php.cn/php-weizijiaocheng-378631.html

<?php
class o {
    public $c = 1;

    public function a() {
        $this->c = $this->c+1;
        return  $this;
    }

    public function b() {
        return $this->c;
    }
}

class p {
    static public $c = 1;

    static public function a() {
        self::$c = self::$c+1;
        
        return new self;
    }

    public function b() {
        return self::$c;
    }
}
$o = new o();
echo $o->a()->b();

echo '</br>';

echo p::a()->b();