php专区

 首页 > php专区 > PHP应用 > 常用功能 > PHP反射学习入门示例

PHP反射学习入门示例

分享到:
【字体:
导读:
         [导读] PHP反射学习入门示例...

本文实例讲述了PHP反射。分享给大家供大家参考,具体如下:

  • ReflectionProperty 类的属性的相关信息
    name = $name;
        $this->skills = $skills;
      }
      public function attack($hero) {
        echo "Attack {$hero->name}" . PHP_EOL;
      }
      public function execute($index) {
        echo "Axecute {$index} skill" . PHP_EOL;
      }
    }
    $ref = new ReflectionClass('Hero');
    if ($ref->isInstantiable()) {
      echo '可以实例化' . PHP_EOL;
    }
    // 获取类的构造函数
    $constructor = $ref->getConstructor();
    print_r($constructor); //ReflectionMethod E对象
    //获取属性
    if ($ref->hasProperty('name')) {
      $attr = $ref->getProperty('name');
      print_r($attr); //ReflectionProperty 对象
    }
    // 获取属性列表
    $attributes = $ref->getProperties();
    foreach ($attributes as $row) {
      //row 为 ReflectionProperty 的实例
      echo $row->getName() . "n";
    }
    // 获取方法
    if ($ref->hasMethod('attack')) {
      $method = $ref->getMethod('attack');
      //$method 为 ReflectionMethod 的实例
      print_r($method);
    }
    // 获取方法列表
    $methods = $ref->getMethods();
    foreach ($methods as $row) {
      //这的row 是 ReflectionMethod 的实例
      echo $row->getName() . PHP_EOL;
    }
    
    
    牋 [class] => Hero
    )
    ReflectionProperty Object
    (
    牋 [name] => name
    牋 [class] => Hero
    )
    name
    skills
    ReflectionMethod Object
    (
    牋 [name] => attack
    牋 [class] => Hero
    )
    __construct
    attack
    executephp面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

  • 分享到:
    php反射学习之不用new方法实例化类操作示...
    本文实例讲述了php反射学习之不用new方法实例化类操作。分享给大家供大家参考,具体如下:php反射入门示例简单介绍了 php 反射的几个常见类的使用方法,但是用反射能做些什么,你可能还是想象不到,
    PHP如何实现阿里云短信sdk灵活应用在项目...
    首先安装 composer require alibabacloud/sdkhttps://packagist.org/packages/alibabacloud/sdk
    •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
    • 在这里……