不在对象上下文 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,则需要实例化它。
我有错误:
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,则需要实例化它。