Modern PHP 阅读笔记之PHP新特性

1、命名空间

1、为什么要使用命名空间:

1、命名空间 可以解决 多个类名、方法、常量、接口 名字相同的问题。

大型项目中,命名难免会冲突。命名空间可以解决这个问题

2、声明命名空间

使用 \ 把命名空间和子命名空间分开。

3、导入和别名

send();

别名:

send();

导入常量

命名空间 使用技巧
如果想在一个PHP文件中 导入多个类、接口、函数和常量,要在PHP文件的顶部使用多个use语句。

    

建议这样写

    

一个文件中使用多个命名空间 (一般 一个文件中定义一个类)

    

全局命名空间

有些代码 没有命名空间 即可能在全局命名空间中 例如Exception 如果没有使用命名空间之后,可能会导致错误

使用接口

class DocumentStore
    {
        protected $data =[];
        public function addDocument(Documentable $document)
        {
            $key = $document->getId();
            $value = $document->getContent();
            $this->data[$key] = $value;
        }
        public function getDocuments()
        {
            return $this->data;
        }
    }

定义

    interface Documentable
    {
        public function getId();
        public function getContent();
    }

HTML 类

    class HtmlDocument implements Documentable
    {
        protected $url;
        public function getId()
        {
            return $this->url;
        }
        public function getContent()
        {
        
        }
    }

使用 DocumentStore类

addDocument($htmlDoc);

性状trait

性状是类的部分实现(即常量,属性和方法) 可以混入一个或多个现有的PHP类中。
性状有两个作用: 表明类可以做什么,提供模块化实现
性状能把模块化的实现方式注入多个无关的类中。而且性状还能促进代码重用。
php不支持多继承,用trait可以实现多继承

生成器

1、 创建生成器

2、使用生成器

正确方法如下

3、闭包

创建闭包

你可能感兴趣的:(Modern PHP 阅读笔记之PHP新特性)