当前位置:首页 > CN2资讯 > 正文内容

PHP反射php 反射类

2天前CN2资讯
<?php declare(strict_types=1);//开启强类型模式 class Person {     public $name;     protected $hobbies = [];     private $age;     /**      * 构造器      * Person constructor.      * @param string $name      * @param array $hobbies      * @param int $age      */     public function __construct(string $name, array $hobbies, int $age)     {         $this->name = $name;         $this->hobbies = $hobbies;         $this->age = $age;     }     /**      * 判断是否符合人类的喜好      * @param string $hobby      * @return bool      */     public function checkHobby(string $hobby)     {         if (in_array($hobby, $this->hobbies)) {             echo $this->name . ' very like ' . $hobby . PHP_EOL;         } else {             echo $this->name . ' not like ' . $hobby . PHP_EOL;         }     } } //1.获取指定类的反射类对象(初始化新的 ReflectionClass 对象。 ) //public ReflectionClass::__construct ( mixed $argument ) $reflectionClass = new ReflectionClass('Person'); //2.获取反射类对象的实例(即反射实例) //public object ReflectionClass::newInstance ( mixed $args [, mixed $... ] ) $reflectionInstance = $reflectionClass->newInstance('zhangsan', ['吃饭', '睡觉', '打豆豆'], 18);// 创建类的新的实例。给出的参数将会传递到类的构造函数。 /**  * Person Object  * (  * [name] => zhangsan  * [hobbies:protected] => Array  * (  * [0] => 吃饭  * [1] => 睡觉  * [2] => 打豆豆  * )  * [age:Person:private] => 18  * )  *  */ //public object ReflectionClass::newInstanceArgs ([ array $args ] ) //$reflectionInstance1 = $reflectionClass->newInstanceArgs(['zhangsan', ['吃饭', '睡觉', '打豆豆'], 18]);// 创建类的新的实例。给出的参数将会传递到类的构造函数。 //echo $reflectionInstance == $reflectionInstance1; //3.获取成员方法的反射方法类 ReflectionMethod( 获取一个类方法的 ReflectionMethod。) //public ReflectionMethod ReflectionClass::getMethod ( string $name ) $reflectionMethod = $reflectionClass->getMethod('checkHobby'); //4.执行一个反射的方法。 //public mixed ReflectionMethod::invoke ( object $object [, mixed $parameter [, mixed $... ]] ) //参数解析: //$object为反射类的实例对象, //$parameter为要反射的类的成员方法参数 echo $reflectionMethod->invoke($reflectionInstance, 'coding php'); echo $reflectionMethod->invoke($reflectionInstance, '吃饭'); echo $reflectionMethod->invokeArgs($reflectionInstance, ['coding Java']); echo $reflectionMethod->invokeArgs($reflectionInstance, ['dream']); //(new Person('lisi', ['run', 'footbool', 'climb mountains'], 25))->checkHobby('Python');
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/26414.html

    标签: PHP反射PHP
    分享给朋友:

    “PHP反射php 反射类” 的相关文章

    KVM是什么?深入了解KVM的定义、工作原理及应用场景

    KVM的定义与概念 谈到KVM时,首先想到的就是“键盘、显示器和鼠标”的组合,它让我们可以用一组设备控制多台计算机。这种技术非常适合在数据中心或需要远程管理的环境中使用。我对这个系统产生了兴趣,因为它显著提高了管理效率,节省了空间,还所有的操作都变得更简便。想象一下,如果有多台服务器,你需要同时监控...

    深入了解服务器的基本概念、分类、性能评估与优化策略

    1. 服务器的基本概念与功能 在现代计算环境中,服务器的角色不可或缺。我将服务器看作是一种高性能计算机,专门为客户机提供服务。它们是构建云计算和数据中心的核心设备。通过提供各种服务,如文件存储、数据处理和应用托管,服务器帮助企业高效运营,满足日益增长的技术需求。 服务器的特点非常明显,具有高性能、高...

    如何使用一键同步脚本提高自媒体内容发布效率

    一键同步脚本是一种非常实用的自动化工具,现今在很多领域都可以看到它的身影。作为一名热爱分享与创作的人,我发现无论是自媒体内容发布、数据库备份迁移,还是文件同步,这类脚本都能大大简化我的工作流程。它们不仅能提高工作效率,还能减少出错的可能性,实现工作自动化。 一键同步脚本的核心在于其定义。简单来说,这...

    Lightlayer在菲律宾的应用与优势:智能光电解决方案

    光电技术的迅速发展让我们有机会迎接许多新概念和新技术,其中Lightlayer便是一个值得关注的例子。在我第一次听到“Lightlayer”这个词时,它似乎蕴含了科技的无限可能。Lightlayer简单来说是一个光电解决方案,能够通过创新的方式来管理和优化光源。它不仅在设计上追求完美,更在功能上实现...

    亿速云:构建安全、高效的云计算解决方案

    在当今数字化快速发展的时代,云计算服务的重要性愈发显著。我了解到,亿速云正是一家在这一领域崭露头角的企业,专注于提供高品质的云计算服务。自成立以来,亿速云围绕创新技术和卓越服务,努力帮助各行各业的用户实现数字化转型和升级。作为新一代云计算服务商,亿速云把握时代脉搏,致力于为全球用户提供稳定、安全、高...

    HostDare VPS主机服务评测:高性价比与用户体验的完美结合

    在与HostDare的互动中,我感受到这家公司在客户支持与用户体验方面的一些亮点和不足。正如我们所知,HostDare是一家致力于提供高性价比VPS主机服务的公司,尤其在针对中国大陆用户的优化上表现突出。虽然服务上有一些待改善之处,但总体而言,它的客户支持体系还是相对高效的。 首先,HostDare...