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|mixed
function show(mixed|null $name){
var_dump($name);
}
show(true);
五.默认类型
1.当函数参数或类属性未声明显式类型时,现在假定该类型为mixed
2.对于返回类型,缺少显式返回类型等于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);
2 Static类方法的返回类型
一.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();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。