在php中定义一个类上如果有静态方法,这个类就称为静态类
error_reporting(E_ALL ^ E_NOTICE);
class Demo
{
pubilc static function sayHello()
{
echo 'this is sayhello function';
}
public function sayBye()
{
echo 'this is saybye function';
}
}
echo Demo::sayHello();//没问题
echo Demo::sayHi();//有警告
在这里我想解释下原理,我是在看C语言的时候突然想起来的,之前可能没有仔细想
因为 静态的变量或者是函数是保存的静态内存中的,只有到程序结束时才会被释放,那他是什么时候赋值的呢
是在编译的时候,动态类是在程序运行的时候动态分配的
如果类中调用一次,静态类在编译的时候需要多做工作,动态类在执行的时候需要需要多做工作,然而php是动态语言,每一次这两步都不不掉
所以对于只运行一次的类,无所谓谁快谁慢,
但是如果一个类在程序当中要多次调用就不一样了,静态类是编译的时候就赋值了,程序之后的运行都可以直接调用过来,而不用动态的分配内存了,就节约了时间
这就是为什么静态类比动态类快的原因(前提是调用多次记得)