php的类成员其实并无明显的动静态之分,所有成员在没明确声明的情况下都会被当成静态成员存放在特定的内存区中,所以调用静态成员函数就和调用普通函数一样,速度很快。有人会担心,使用静态方法会不会造成内存占用过多,其实从上面分析可以知道,你不声明静态方法,系统依然会把成员当成静态,因此对于一个完全静态方法的类和一个完全动态但没声明实例对象的类占用内存几乎是一样的,所以对于比较直接的逻辑,都建议直接用静态成员方法,当然,一些复杂或对像化明显的逻辑,如果完全用静态类也不是没可能,但那样就失去类的意义了,如果这样,何必OOP,按用途,静态方法特别适用于MVC模式的逻辑类中。
<?php
class Student{
public static function showName1(){
echo 'my name is dequan by showName1 Function </br>';
}
public function showName2(){
echo 'my name is dequan by showName2 Function</br>';
}
}
error_reporting(0);//如果不加错误提示级别,会有警告出现
Student::showName1();
Student::showName2();
备注:
都报出来:
error_reporting(11);
不要报 NOTICE: error_reporting(3);
任何错误都不报: error_reporting(0);