迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

PHP 中的匿名类

作者:迹忆客 最近更新:2023/03/27 浏览次数:

本篇文章介绍 PHP 中的匿名类,并演示如何使用不同的代码示例创建和使用这些类。 我们还将学习如何在 PHP 中嵌套匿名类。


PHP 匿名类

顾名思义,匿名类 就是没有名字的类。 PHP 7 引入了匿名类的特性,这个类只能一次性使用。

匿名类在该类的对象内定义。 匿名类可以执行普通类将执行的任何操作,包括扩展、实现和使用特征; 匿名类的语法是:

$Anonymous_Object=new class {
// Your code here
}

让我们为匿名类尝试一个简单的例子:

<?php
$Anonymous_Object=new class {
    public function Print_Jiyik(){
        echo "Hello, This is jiyik.com";
    }
};
$Anonymous_Object->Print_Jiyik();
?>

上面的代码将像标准类一样工作,并从匿名类中调用函数 Print_Delftstack()。 查看输出:

Hello, This is jiyik.com

让我们尝试另一个示例,其中匿名类扩展一个类并实现一个接口:

<?php
class Demo_Class{
    public function Print_Jiyik1(){
        echo "This is jiyik from a parent class.<br>";
    }
}

interface Demo_Interface{
    public function Print_Jiyik2();
}

$Anonymous_Object=new class() extends Demo_Class implements Demo_Interface {
    public function Print_Jiyik2(){
        echo "This is jiyik from the parent interface; the method is implemented from Demo_Interface.";
    }
};

$Anonymous_Object->Print_Jiyik1();
$Anonymous_Object->Print_Jiyik2();
?>

上面的代码扩展了一个类并实现了一个接口,然后将它们的方法与匿名类一起使用。 查看输出:

This is jiyik from a parent class.
This is jiyik from the parent interface; the method is implemented from Demo_Interface.

我们可以看到匿名类是如何工作的,但是一个类如何在内部使用中匿名工作呢? 答案是 PHP 给匿名类一个唯一的名字; 让我们尝试获取匿名类的名称:

<?php
var_dump(get_class(new class() {
    public function Print_Jiyik(){
        echo "Hello, This is jiyik.com";
    }
} ));
?>

上面的代码会转储给定匿名类的信息,这是匿名类的唯一名称; 查看输出:

string(46) "class@anonymousC:\Apache24\htdocs\new.php:2$5" 

PHP 中的嵌套匿名类

匿名可以嵌套在另一个类的方法体内,但不能访问外部类的保护成员和私有成员。 让我们尝试一个例子:

<?php
class Demo_Class{
   public function Jiyik1(){
      return new class(){
         public function Jiyik2(){
            echo "This is jiyik two methods from the nested anonymous class.";
         }
      };
   }
}

$Demo_Object=new Demo_Class();
$Demo_Object->Jiyik1()->Jiyik2();
?>

上面的代码显示了如何实现嵌套到标准类的匿名类。 查看输出:

This is jiyik two methods from the nested anonymous class.

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 PHP 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:183 分类:PHP

本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

PHP 中的重定向

发布时间:2023/03/29 浏览次数:136 分类:PHP

本教程演示了如何将用户从页面重定向到 PHP 中的其他页面

PHP 分页

发布时间:2023/03/29 浏览次数:66 分类:PHP

本教程介绍如何在 PHP 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便