您现在的位置是:自如初>PHP基础PHP基础
PHP 7 特性之 匿名类
温新
2023-02-21 15:34:00
【PHP基础】
646人已围观
简介回顾一上 PHP 7 特性之 匿名类
hi,我是温新,一名 PHPer
匿名类是 PHP 7 加入,匿名类和匿名方法让PHP成为了更现代化的语言,开发也更加便捷,本篇文章回顾一下匿名类。
什么是(Anonymous classes)匿名类
匿名类是一个不需要事先定义的类,在使用时直接定义。
匿名类的使用
1、简单使用
<?php
// 匿名类的定义与使用
$user = new class {
public function getName()
{
echo '我叫王美美';
}
};
$user->getName();
2、在函数中返回匿名类
<?php
// 函数返回匿名类对象
function get_user_name () {
return new class {
public function getName()
{
echo '我是王美丽';
}
};
}
get_user_name()->getName();
3、作为参数传递
<?php
$user = new class {
public function getName()
{
echo '我叫王美美';
}
};
function get_user_name ($user) {
echo $user->getName();
}
get_user_name($user);
4、接口、继承、属性
4.1、无参数案例
<?php
// 人类接口
interface Human
{
public function say():string;
}
// 王美丽父母接口
class MrWangParent implements Human
{
public function say():string
{
return 'ha';
}
public function sing(): string
{
return '唱歌';
}
}
// 王美丽
$wangMeiLi = new class extends MrWangParent implements Human {
public function dance():string
{
return '跳舞';
}
};
print_r($wangMeiLi->dance());
这个案例中,王美丽的家长实现了人类接口;然后生下了王美丽,王美丽继承了家长了会唱歌的基因,并且自己还有跳舞的天分。
4.2、传递参数与属性设置
<?php
// 创建匿名类并传递参数
$wangMeiLi = new class('快乐的跳舞') extends MrWangParent implements Human {
const AGE = 19;
public function __construct(public string $happy)
{
}
public function dance():string
{
return $this->happy . ' 跳舞';
}
};
print_r($wangMeiLi->dance());
print_r($wangMeiLi::AGE);
很赞哦!(6)
相关文章
- 使用 phpipze 编译扩展报错的解决方法
- PHP 7 特性之 匿名类
- PHP 8.2 新特性之 新增方法与弃用相关的操作
- PHP 8.2 新特性之 New Random Extension (新的随机数生成器扩展)
- PHP 8.2 新特性之 DNF Types
- PHP 8.2 新特性之 const 表达式中获取枚举的属性
- PHP 8.2 新特性之弃用动态属性
- PHP 8.2 新特性之 traits 中的常量
- PHP 8.2 新特性之 Hide Sensitive Information In The Back Traces
- PHP 8.2 新特性之 允许 null 和 false 作为独立类型