Castle

我的沉思、笔记和回忆

PHP 的不为人知的新特性

技术

php5.3中新增的特性

静态晚绑定

<?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代替selfself会指向方法所在类,static会指向后期调用者。

goto支持

<?php
goto a;
echo 'Foo';
a:
echo 'Bar';
//输出Bar

当需要跳出多层循环时,必须要增加判断才可以,而goto可以直接跳出循环,与C语言类似。

三元运算简写形式

从php5.3开始支持三元运算符?:。例如$a ?: $b$a为真值返回$a,否则返回$b。其效果等同于$a ? $a : $b

<?php
$a = false;
$a = $a?:1;
echo $a;//输出1
$a = 1220;
$a = $a?:1;
echo $a;//输出1220

php5.6中新增的特性

const常量可以用表达式定义,const常量可以是数组

const ONE = 1;
const TWO = ONE + 1;//仅可以为常量的结果
const Arr = [1,2];

可以用“...”表示多个参数

function sum(...params){
   return array_sum(params);
}
sum(1, 2, 9); //12
sum(...[1,2,9]);//12 注意:只能传数字下标数组,不能穿带有键名的数组

可以用“**”表示幂运算

3 ** 4; //81
创建于2016年12月29日 13:38
阅读量 204
留言列表

暂时没有留言

添加留言