php 类中static的说明
1.类中定义static属性和方法,调用时不用实例化
2.static的属性,在内存中只有一份,为所有的实例共用
使用self:: 关键字访问当前类的静态成员。
一个类的所有实例,共用类中的静态属性。
也就是说,在内存中即使有多个实例,静态的属性也只有一份。
3.静态方法不能调用非静态属性 。不能使用self::调用非静态属性。也不能使用 $this 获取非静态属性的值。
4.静态方法调用非静态方法
PHP5中,在静态方法中不能使用 $this 标识调用非静态方法(由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。)。可以用self::方法名调用非静态方法,非静态方法就默认为静态方法
PHP5中,在静态方法中不能使用 $this 标识调用非静态方法(由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。)。可以用self::方法名调用非静态方法,非静态方法就默认为静态方法
(当一个类中有非静态方法被self:: 调用时,系统会自动将这个方法转换为静态方法。)
class Math { public function Max($num1, $num2) { echo "bad<br />"; return $num1 > $num2 ? $num1 : $num2; } public static function Max3($num1, $num2, $num3) { $num1 = self::Max($num1, $num2); $num2 = self::Max($num2, $num3); $num1 = self::Max($num1, $num2); return $num1; } } $a = 99; $b = 77; $c = 188; echo "显示 $a $b $c 中的最大值是"; echo "<br />"; echo Math::Max3($a, $b, $c)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/klinghr/archive/2010/01/19/5212912.aspx