Skip to main content
 Web开发网 » 站长学院 » 浏览器插件

php8.0的新特性:类型系统的改进

2021年10月25日5790百度已收录

1 新的Mixed伪类型一.mixed定义#mixed是PHP8中添加的伪类型,用于声明参数的类型、返回值、属性可以是任何类型。mixed包含了null类型、类对象、callable和resource类型.

function show(mixed $name){ var_dump($name);}show(true);二.mixed与联合类型#mixed等效于所有类型的联合类型

string|int|float|bool|null|array|object|callable|resource三.禁止强类型转换

$foo = (mixed) $bar;$name='user1';echo (mixed)$name;四.禁止与强他类型一起组合联合类型

string|int|mixedfunction show(mixed|null $name){ var_dump($name);}show(true);五.默认类型1.当函数参数或类属性未声明显式类型时,现在假定该类型为mixed2.对于返回类型,缺少显式返回类型等于mixed|void,但不能人工设置mixed|void,因为mixed不能联合其他类型.

#PHP支持void伪返回类型,以指示该函数将不返回任何内容。这相当于缺少没有设置显式值得return语句.

#mxied返回类型

function show($name):mixed{ var_dump($name); return 1;}echo show(true);#void返回类型

function show($name):void{ var_dump($name);}show(true);六.禁止使用可空mixed类型?mixed

function show(?mixed $name){ var_dump($name);}show(true);php8.0的新特性:类型系统的改进  php8 第1张

2 Static类方法的返回类型一.static类型作用PHP 8.0允许static作为类方法的返回类型.

二.static语法

class Foo { public static function getInstance(): static { return new static(); }}三.仅返回类型static返回类型仅允许作为返回类型。不允许将其作为属性类型或参数类型.

四.不允许在类外使用只有类方法可以声明static返回类型。标准函数或闭包不允许声明static返回类型.

五.实用代码实例1.对象链设计

class Person{ public function say(){ return $this; } public function show(){ return $this; } public function look(){ echo 'say->show->look->echo'; }}$obj=new Person;$obj->say()->show()->look();2.类链设计

class Person{ public static function say():static{ return new static(); } public static function show():static{ return new static(); } public static function look(){ echo 'Person::say()::show()::look() echo'; }}Person::say()::show()::look();3.类输出静态方法中的类常量

class Person{ const HOST='localhost'; public static function say(){ return self::HOST; }}echo Person::say();php8.0的新特性:类型系统的改进  php8 第2张

评论列表暂无评论
发表评论
微信