如何静态调用方法?

<?php
class Popular
{
    public static function getVideo()
    {
        return $this->parsing();
    }
}

class Video 
    extends Popular
{
    public static function parsing()
    {
        return 'trololo';
    }

    public static function block()
    {
        return parent::getVideo();
    }
}

echo Video::block();

我应该这样称呼班级:

Video::block();

而不是初始化它

$video = new Video();
echo $video->block()

不是这个!

Video::block(); // Only this way <<

但是:致命错误:在第6行的myFile.php中的对象上下文中不使用$ this

如何从“热门”类调用函数“解析”?

Soooooooory糟糕的英语


当你使用静态方法时,你不能使用$this关键字,因为它只能在对象中使用,而不能在类中使用。

当你使用new关键字,你创建和从一个类的对象 ,如果你还没有使用新的关键字,那么$this将不可用,因为它不是一个对象

为了让你的代码工作,静态的,你必须使用static keyowrd和Scope Resolution Operator (::)因为你的方法在父类中,而且它没有界限,使用static关键字来调用父类的静态方法。

例:

class Popular
{
    public static function getVideo()
    {
        return static::parsing(); //Here
    }
}
  • 这在PHP中意味着什么?
  • paamayim-nekudotayim - 范围决议
  • http://php.net/manual/en/language.oop5.static.php

  • 改变return $this->parsing(); return self::parsing();

    链接地址: http://www.djcxy.com/p/58039.html

    上一篇: How to invoke a method statically?

    下一篇: Returning of new $this with abstract classes