您现在的位置是:自如初>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)

文章评论

登录 注册

自如初--时间轴

站名:自如初

独白:向前走!向前走!

邮箱:ziruchu@qq.com

RSS: RSS

站点信息