看代码:
<?php
class Demo
{
static function sayHello()
{
echo 'this is sayhello function';
}
public function sayBye()
{
echo 'this is saybye function';
}
}
echo Demo::sayHello();
echo Demo::sayBye();
上面的程序是没有错误的,直接出现了结果。
<?php
class Demo
{
static function sayHello()
{
echo 'this is sayhello function';
}
public function sayBye()
{
echo 'this is saybye function';
}
}
echo Demo->sayHello();
echo Demo->sayBye();
出现了 HTTP 500 的错误。
那是因为:
在类里面的时候,$this->func () 和 self::func () 没什么区别。
在外部的时候,-> 必须是实例化后的对象使用; 而::可以是未实例化的类名直接调用。