今天在写代码的时候,我类在里里本想调用一个方法,默名其妙的写了一个 static, 然后再打了个:: 发现后面出现了我类的方法!突然发现还可以这样?我本是想要$this->xxx();的结果成了 static::xxx();但是我执行代码发现一样可以调用,一样没有错误出现!但在网上找static 都是说静态属性 静态方法!以前调用的时候要么都是self::xxx();要么$this->xxx();突然发现static::xxx();也可以。但没有找到详细的说明!有人能解释一下吗?
class Message
{
public function sendMessage() {
echo 132;
static::doMessage();
self::doMessage();
}
public function doMessage() {
echo 332;
}
}
5 回答
holdtom
TA贡献1805条经验 获得超10个赞
把这边改一下就可以调用:
class Message
{
public function sendMessage() {
echo 132;
static::doMessage();
self::doMessage();
}
public static function doMessage() {
echo 332;
}
}
self::xxx();
$this->xxx();
这是2种调用 方法的方式。
static 方法里不能有 $this
根据你实际需要去定义你的function 是 static 还是非 static
然后使用对于的调用方式
- 5 回答
- 0 关注
- 514 浏览
添加回答
举报
0/150
提交
取消