php面向对象里边的静态属性和普通属性的区别和用法是什么
php面向对象里边的静态属性和普通属性的区别和用法是什么
<code>区别: 1、静态属性、静态方法是属于类的,是所有对象共有的,不属于任何一个具体的对象; 2、普通属性、普通方法是属于一个具体的对象的。 用法: 1、类外部 类名::属性名、类名::方法名() 的形式访问; 2、类内部 self::属性名、self::方法名() 的形式访问。 class Test { // 静态属性 private static $name = '测试'; // 静态方法 public static function getName () { return self::$name; } } // 外部调用静态方法 $name = Test::getName(); // 测试</code>
所谓静态就是说这个成员在内存中的地址是不会变化的。
那么类的静态方法,也就是可以直接调用,而不需要实例化对象,因为如果实例化对象的话,每一次实例化一个对象出来他的地址都是重新分配的,那么这个对象在内存中的地址就是动态的。
得知这个话就可以理解静态成员是在他所属的类在加载的时候就已经固定下来了在内存中的位置。
所以说静态成员是不是要实例化对象,而是直接使用类名来调用。