一只大脸猫博客主要分享PHP开发技巧、Web前端技术、网站优化、网站排名、修电脑、心灵鸡汤等一些生活中遇到的事、道理和技巧。分享更多知识给身边的朋友。
一只大脸猫博客主要分享PHP开发技巧、Web前端技术、网站优化、网站排名、修电脑、心灵鸡汤等一些生活中遇到的事、道理和技巧。分享更多知识给身边的朋友。

PHP 7新特性四 Typed properties (属性类型化)


随着标量类型和返回类型的引入,PHP 7 大大增强了 PHP 类型系统的功能。 但是,目前无法为类属性声明类型,从而迫使开发人员使用 getter 和 setter 方法来强制执行类型契约。 这要求了不必要的样板,使得使用不那么符合人体工程学的方式,并且对性能有不好影响。 此 RFC 通过引入对类属性类型声明的支持来解决该问题。

//此前
class User {
    /** @var int $id */
    private $id;
    /** @var string $name */
    private $name;

    public function __construct(int $id, string $name) {
        $this->id = $id;
        $this->name = $name;
    }

    public function getId(): int {
        return $this->id;
    }
    public function setId(int $id): void {
        $this->id = $id;
    }

    public function getName(): string {
        return $this->name;
    }
    public function setName(string $name): void {
        $this->name = $name;
    }
}
//现在
class User {
    public int $id;
    public string $name;

    public function __construct(int $id, string $name) {
        $this->id = $id;
        $this->name = $name;
    }
}

不牺牲任何类型安全的情况下。

与先前提案的主要区别

先前 已提出类型属性,但当时已被拒绝。新提案有两个主要差异,我们认为这些差异解决了之前提案的大部分问题:

支持静态属性的类型。由于实现问题,以前的RFC中未包含对静态属性类型的支持,从而导致语言不一致。在新提议下,可以将类型声明添加到静态属性,其语义与普通属性相同。

支持对类型属性的引用。之前的提案不允许引用类型属性,因为如果通过引用间接修改属性,则难以强制执行类型。新提议允许引用类型属性,并且即使通过引用进行修改,也会强制执行声明的类型。


PHP 7新特性四 Typed properties (属性类型化):https://www.yzdlm.com/php/14.html

作者:大脸猫 分类: 大脸猫PHP博客


上一篇:PHP 7 新特性三 Traits 下一篇:为什么大家总喜欢黑PHP?PHP到底做错了什么

评论


乖,登录后才可以留言!
QQ一键登录

相关文章

0、2021-01-13——PHP中常用的魔术方法
1、2020-12-21——PHP中的「abstract」关键词「抽象」
2、2020-11-11——PHP 保留关键词列表
3、2020-10-21——PHP面向对象的魔术方法有哪些?
4、2020-09-25——「设计模式」PHP单例模式以及单例模式的使用案例
5、2020-07-03——PHP开发环境搭建工具有哪些?
6、2020-06-07——PHP丨PHP基础知识之流程控制for循环「理论篇」
7、2019-09-14——Zend创始人提议创建PHP方言,暂命名为P++
8、2019-07-20——composer如何安装?
9、2019-07-18——Composer -- PHP依赖管理的新时代
10、2019-07-16——Composer 是什么?
11、2019-06-12——PHP 7新特性五 Spread operator(数组延展操作符)
12、2019-06-01——为什么大家总喜欢黑PHP?PHP到底做错了什么
13、2019-05-24——PHP 7新特性四 Typed properties (属性类型化)
14、2019-05-24——PHP 7 新特性三 Traits
15、2019-05-23——PHP 7新特性一 Short closures 短闭包
16、2019-05-22——在线编辑器实现代码高亮展示
17、2019-05-21——PHP早已不是十年前的鸟样
Top