PHP 新特性

命名空间 namespace

其作用是按照一种虚拟的层次结构组织PHP代码,现代PHP组件和框架都放在各自全局唯一的厂商命名空间中,以避免常见类名冲突。命名空间还是PSR-4 自动加载的基础

send();

接口 interface

使用接口编写的代码更灵活,能委托别人实现细节。

url = $url;
    }

    public function getId()
    {
        return $this->url;
    }

    public function getContent()
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $html = curl_exec($ch);
        curl_close($ch);
        return $html;
    }
}
resource = $resource;
        $this->buffer = $buffer;
    }

    public function getId()
    {
        return 'resource-' . (int)$this->resource;
    }

    public function getContent()
    {
        $steamContent = '';
        rewind($this->resource);
        while (feof($this->resource) == false) {
            $steamContent .= fread($this->resource, $this->buffer);
        }
        return $steamContent;
    }
}

性状 trait

性状是类的部分实现(即常量,属性和方法),可以混入一个或多个现有PHP类中。性状有两个作用:表明类可以做什么(像是接口);提供模块化实现(像是类)。
性状能把模块化的实现方式注入多个物管的类中,而且还能促进代码重用。

生成器 generators

与标准的PHP迭代器不同,PHP生成器不要求实现Iterator接口,从而减轻了类的负担。生成器会根据需求计算并产生要迭代的值,不需要占用宝贵的内存,有助于优化性能。
注意:生成器只产出值,没有返回值。无法后退或者快进。而且还是一次性的,无法多次迭代同一个迭代器。不过,如果需要,可以重建或者克隆生成器。

闭包 closure

闭包是指创建时封装周围状态的函数。匿名还是是指没有名称的函数。
理论上闭包和匿名函数是不同的概念,但是PHP将其视作相同的概念。

 "hello John"

字节码缓存 Zend OPcache

PHP 是解释型语言,PHP解析器执行PHP脚本时会解析PHP脚本代码,把PHP代码编译成一系列Zend操作码,然后执行字节码。每次HTTP请求都必须不断解析,编译和执行PHP脚本,会消耗很多资源。字节码缓存能存储先编译号的PHP字节码,请求PHPj脚本时PHP解析器会冲内存中读取预先编译好的字节码,然后执行。只有能节省时间,极大地提高性能。

你可能感兴趣的:(PHP 新特性)