php5.3中新增的特性
静态晚绑定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?php class A { public static function who(){ echo __CLASS__; }
public static function test(){ echo static::who(); }
public static function test2(){ echo self::who(); } }
class B extends A{ public static function who(){ echo __CLASS__; } }
A::test();//输出A A::test2();//输出A
b::test();//输出B 晚期静态绑定会绑定到调用类 b::test2();//输出A 直接绑定会绑定到方法所在类
|
晚期静态绑定是使用static
代替self
,self
会指向方法所在类,static
会指向后期调用者。
goto支持
1 2 3 4 5 6
| <?php goto a; echo 'Foo'; a: echo 'Bar'; //输出Bar
|
当需要跳出多层循环时,必须要增加判断才可以,而goto可以直接跳出循环,与C语言类似。
三元运算简写形式
从php5.3开始支持三元运算符?:
。例如$a ?: $b
,$a
为真值返回$a
,否则返回$b
。其效果等同于$a ? $a : $b
。
1 2 3 4 5 6 7
| <?php $a = false; $a = $a?:1; echo $a;//输出1 $a = 1220; $a = $a?:1; echo $a;//输出1220
|
php5.6中新增的特性
const常量可以用表达式定义,const常量可以是数组
1 2 3
| const ONE = 1; const TWO = ONE + 1;//仅可以为常量的结果 const Arr = [1,2];
|
可以用“…”表示多个参数
1 2 3 4 5
| function sum(...params){ return array_sum(params); } sum(1, 2, 9); //12 sum(...[1,2,9]);//12 注意:只能传数字下标数组,不能穿带有键名的数组
|
可以用“**”表示幂运算