亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

面向對象 (十一)反射類

標簽:
PHP
反射技术
原理:通过反射类,可以知道一切类信息,从而实现更加健壮的代码
作用:
    写底层框架
    扩展类功能
    管理大量未知类
demo11.php
<?php
namespace Extend;
use ReflectionClass;
use Exception;

/**
 * 用户相关类
 * Class User
 * @package Extend
 */

class User{
    const ROLE = 'Students';
    public $username = '';
    private $password = '';
    public function __construct($username, $password)
    {
        $this->username = $username;
        $this->password = $password;
    }

    /**
     * 获取用户名
     * @return string
     */
    public function getUsername()
    {
        return $this->username;
    }

    /**
     * 设置用户名
     * @param string $username
     */
    public function setUsername($username)
    {
        $this->username = $username;
    }

    /**
     * 获取密码
     * @return string
     */

    private function getPassword()
    {
        return $this->password;
    }


    /**
     * 设置密码
     * @param string $password
     */
    private function setPassowrd($password)
    {
        $this->password = $password;
    }
}



$class = new ReflectionClass('Extend\User');  // 将类名User作为参数,即可建立User类的反射类

echo '将类名User作为参数,即可建立User类的反射类';echo "<br/>";

echo "<pre>";var_dump($class);echo "</pre>";echo "<br/>";

$properties = $class->getProperties();  // 获取User类的所有属性,返回ReflectionProperty的数组

echo '获取User类的所有属性,返回ReflectionProperty的数组';echo "<br/>";

echo "<pre>";var_dump($properties);echo "</pre>";echo "<br/>";

$property = $class->getProperty('password'); // 获取User类的password属性ReflectionProperty

echo '获取User类的password属性ReflectionProperty';echo "<br/>";

echo "<pre>";var_dump($property);echo "</pre>";echo "<br/>";

$methods = $class->getMethods();   // 获取User类的所有方法,返回ReflectionMethod数组

echo '获取User类的所有方法,返回ReflectionMethod数组';echo "<br/>";

echo "<pre>";var_dump($methods);echo "</pre>";echo "<br/>";

$method = $class->getMethod('getUsername');  // 获取User类的getUsername方法的ReflectionMethod

echo '获取User类的getUsername方法的ReflectionMethod';echo "<br/>";

echo "<pre>";var_dump($method);echo "</pre>";echo "<br/>";

$constants = $class->getConstants();   // 获取所有常量,返回常量定义数组

echo '获取所有常量,返回常量定义数组';echo "<br/>";

echo "<pre>";var_dump($constants);echo "</pre>";echo "<br/>";

$constant = $class->getConstant('ROLE');   // 获取ROLE常量

echo '获取ROLE常量';echo "<br/>";

echo "<pre>";var_dump($constant);echo "</pre>";echo "<br/>";

$namespace = $class->getNamespaceName();  // 获取类的命名空间

echo '获取类的命名空间';echo "<br/>";

echo "<pre>";var_dump($namespace);echo "</pre>";echo "<br/>";

$comment_class = $class->getDocComment();  // 获取User类的注释文档,即定义在类之前的注释

echo '获取User类的注释文档,即定义在类之前的注释';echo "<br/>";

echo "<pre>";var_dump($comment_class);echo "</pre>";echo "<br/>";

$comment_method = $class->getMethod('getUsername')->getDocComment();  // 获取User类中getUsername方法的注释文档

echo '获取User类中getUsername方法的注释文档';echo "<br/>";

echo "<pre>";var_dump($comment_class);echo "</pre>";echo "<br/>";

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消