有我的类不在对象上下文中时使用$ this。
<?php
class Adverts extends CActiveRecord
{
public function getMainImage($id=0, $t=0){
return $this->images($id, 'main-image', $t);
}
public static function mainPic($id, $t=0){
$thumb = $t ? 'thumbs/':'';
return self::urlDir($id).$this->getMainImage($id,$t);<---error line
}
.......
为什么我不能在静态方法中调用简单方法???
$this
是对Adverts对象的引用。当您通过调用创建新类时,将创建此对象new Adverts()
。现在,由于您要像这样调用静态方法,因此Adverts::mainPic()
您无需创建新的类对象。因此,这意味着内部mainPic()
没有类对象之类的东西,$this
这就是您不能使用它的原因。
您可以访问其他不$this
以这些方式使用的静态方法或变量:
self::methodName() // access current class or parent class method
parent::methodName() // access method in parent class
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句