不在对象上下文 Yii2 中时使用 $this

Using $this when not in object context Yii2

我有错误:

Using $this when not in object context.

我正在使用这个:meysampg/intldate

<?php
namespace app\components;
use meysampg\intldate\IntlDateTrait;

    class General extends Component
    {
        use IntlDateTrait;
    public static function jalaliToGregorian($date,$pattern='yyyy/MM/dd')
        {
            echo $date;
            $dateToGre = explode('/',$date);

            echo $this->fromPersian([$dateToGre[0],$dateToGre[1],$dateToGre[2]])->toGregorian('en')->asDateTime($pattern);
        }
    }

static 关键字表示该方法或变量不是对象的一部分,而是 class.

的一部分

这意味着 $this 不可访问。

试试这个:

class General extends Component
{
    use IntlDateTrait;
    public static function jalaliToGregorian($date,$pattern='yyyy/MM/dd')
    {
        echo $date;
        $dateToGre = explode('/',$date);
        $general = new General();
        echo $general->fromPersian([$dateToGre[0],$dateToGre[1],$dateToGre[2]])->toGregorian('en')->asDateTime($pattern);
    }
}

当从 class 中引用静态 属性 或方法时,您需要使用 ClassName::Method()self::method()

如果您希望从 class 中调用非静态 method/property,则需要实例化它。