我有错误:
不在对象上下文中时使用$ this。
我使用的是: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);
}
}
答案 0 :(得分:3)
static关键字表示该方法或变量不是对象的一部分,而是该类的一部分。
这意味着$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);
}
}
在类中引用静态属性或方法时,您需要使用ClassName::Method()
或self::method()
如果你想从类中调用非静态方法/属性,你需要实例化它。