UNPKG

manual-php

Version:
7,551 lines 533 kB
<!DOCTYPE HTML>
<html lang="zh-hans" >
    <head>
        <meta charset="UTF-8">
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <title>反射 · PHP</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.2.3">
        <meta name="author" content="Kuriv Vesti">
        
        
    
    <link rel="stylesheet" href="../../../gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="../../../gitbook/gitbook-plugin-back-to-top-button/plugin.css">
                
            
                
                <link rel="stylesheet" href="../../../gitbook/gitbook-plugin-chapter-fold/chapter-fold.css">
                
            
                
                <link rel="stylesheet" href="../../../gitbook/gitbook-plugin-lightbox/css/lightbox.min.css">
                
            
                
                <link rel="stylesheet" href="../../../gitbook/gitbook-plugin-prism/prism-okaidia.css">
                
            
                
                <link rel="stylesheet" href="../../../gitbook/gitbook-plugin-search-pro/search.css">
                
            
                
                <link rel="stylesheet" href="../../../gitbook/gitbook-plugin-splitter/splitter.css">
                
            
                
                <link rel="stylesheet" href="../../../gitbook/gitbook-plugin-fontsettings/website.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
    

        
    
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../../gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="../../../gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="变量.html" />
    
    
    <link rel="prev" href="函数处理.html" />
    

    
        <link rel="shortcut icon" href='../../../favicon.ico' type="image/x-icon">
    
    
        <link rel="bookmark" href='../../../favicon.ico' type="image/x-icon">
    
    
        <link rel="apple-touch-icon" href='../../../favicon.png'>
    
    
        
        <link rel="apple-touch-icon" sizes="120x120" href="../../../favicon-120x120.png">
        
        <link rel="apple-touch-icon" sizes="180x180" href="../../../favicon-180x180.png">
        
    

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="输入并搜索" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="../../../">
            
                <a href="../../../">
            
                    
                    PHP
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1" data-path="../../语言参考.html">
            
                <a href="../../语言参考.html">
            
                    
                    语言参考
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.1" data-path="../../语言参考/基本语法.html">
            
                <a href="../../语言参考/基本语法.html">
            
                    
                    基本语法
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.1.1" data-path="../../语言参考/基本语法/PHP 标记.html">
            
                <a href="../../语言参考/基本语法/PHP 标记.html">
            
                    
                    PHP 标记
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.1.2" data-path="../../语言参考/基本语法/从 HTML 中分离.html">
            
                <a href="../../语言参考/基本语法/从 HTML 中分离.html">
            
                    
                    从 HTML 中分离
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.1.3" data-path="../../语言参考/基本语法/指令分隔符.html">
            
                <a href="../../语言参考/基本语法/指令分隔符.html">
            
                    
                    指令分隔符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.1.4" data-path="../../语言参考/基本语法/注释.html">
            
                <a href="../../语言参考/基本语法/注释.html">
            
                    
                    注释
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.2" data-path="../../语言参考/类型.html">
            
                <a href="../../语言参考/类型.html">
            
                    
                    类型
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.2.1" data-path="../../语言参考/类型/Boolean 布尔类型.html">
            
                <a href="../../语言参考/类型/Boolean 布尔类型.html">
            
                    
                    Boolean 布尔类型
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.2.2" data-path="../../语言参考/类型/Integer 整型.html">
            
                <a href="../../语言参考/类型/Integer 整型.html">
            
                    
                    Integer 整型
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.2.3" data-path="../../语言参考/类型/Float 浮点型.html">
            
                <a href="../../语言参考/类型/Float 浮点型.html">
            
                    
                    Float 浮点型
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.2.4" data-path="../../语言参考/类型/String 字符串.html">
            
                <a href="../../语言参考/类型/String 字符串.html">
            
                    
                    String 字符串
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.2.5" data-path="../../语言参考/类型/Array 数组.html">
            
                <a href="../../语言参考/类型/Array 数组.html">
            
                    
                    Array 数组
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.2.6" data-path="../../语言参考/类型/Object 对象.html">
            
                <a href="../../语言参考/类型/Object 对象.html">
            
                    
                    Object 对象
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.2.7" data-path="../../语言参考/类型/Resource 资源类型.html">
            
                <a href="../../语言参考/类型/Resource 资源类型.html">
            
                    
                    Resource 资源类型
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.2.8" data-path="../../语言参考/类型/NULL.html">
            
                <a href="../../语言参考/类型/NULL.html">
            
                    
                    NULL
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.2.9" data-path="../../语言参考/类型/Callable 可调用类型.html">
            
                <a href="../../语言参考/类型/Callable 可调用类型.html">
            
                    
                    Callable 可调用类型
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.2.10" data-path="../../语言参考/类型/类型转换的判别.html">
            
                <a href="../../语言参考/类型/类型转换的判别.html">
            
                    
                    类型转换的判别
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.3" data-path="../../语言参考/变量.html">
            
                <a href="../../语言参考/变量.html">
            
                    
                    变量
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.3.1" data-path="../../语言参考/变量/基本语法.html">
            
                <a href="../../语言参考/变量/基本语法.html">
            
                    
                    基本语法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.3.2" data-path="../../语言参考/变量/变量范围.html">
            
                <a href="../../语言参考/变量/变量范围.html">
            
                    
                    变量范围
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.3.3" data-path="../../语言参考/变量/可变变量.html">
            
                <a href="../../语言参考/变量/可变变量.html">
            
                    
                    可变变量
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.3.4" data-path="../../语言参考/变量/来自 PHP 之外的变量.html">
            
                <a href="../../语言参考/变量/来自 PHP 之外的变量.html">
            
                    
                    来自 PHP 之外的变量
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.4" data-path="../../语言参考/常量.html">
            
                <a href="../../语言参考/常量.html">
            
                    
                    常量
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.4.1" data-path="../../语言参考/常量/基本语法.html">
            
                <a href="../../语言参考/常量/基本语法.html">
            
                    
                    基本语法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.4.2" data-path="../../语言参考/常量/魔术常量.html">
            
                <a href="../../语言参考/常量/魔术常量.html">
            
                    
                    魔术常量
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.5" data-path="../../语言参考/表达式.html">
            
                <a href="../../语言参考/表达式.html">
            
                    
                    表达式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6" data-path="../../语言参考/运算符.html">
            
                <a href="../../语言参考/运算符.html">
            
                    
                    运算符
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.6.1" data-path="../../语言参考/运算符/运算符优先级.html">
            
                <a href="../../语言参考/运算符/运算符优先级.html">
            
                    
                    运算符优先级
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.2" data-path="../../语言参考/运算符/算数运算符.html">
            
                <a href="../../语言参考/运算符/算数运算符.html">
            
                    
                    算数运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.3" data-path="../../语言参考/运算符/赋值运算符.html">
            
                <a href="../../语言参考/运算符/赋值运算符.html">
            
                    
                    赋值运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.4" data-path="../../语言参考/运算符/位运算符.html">
            
                <a href="../../语言参考/运算符/位运算符.html">
            
                    
                    位运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.5" data-path="../../语言参考/运算符/比较运算符.html">
            
                <a href="../../语言参考/运算符/比较运算符.html">
            
                    
                    比较运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.6" data-path="../../语言参考/运算符/错误控制运算符.html">
            
                <a href="../../语言参考/运算符/错误控制运算符.html">
            
                    
                    错误控制运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.7" data-path="../../语言参考/运算符/执行运算符.html">
            
                <a href="../../语言参考/运算符/执行运算符.html">
            
                    
                    执行运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.8" data-path="../../语言参考/运算符/递增递减运算符.html">
            
                <a href="../../语言参考/运算符/递增递减运算符.html">
            
                    
                    递增递减运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.9" data-path="../../语言参考/运算符/逻辑运算符.html">
            
                <a href="../../语言参考/运算符/逻辑运算符.html">
            
                    
                    逻辑运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.10" data-path="../../语言参考/运算符/字符串运算符.html">
            
                <a href="../../语言参考/运算符/字符串运算符.html">
            
                    
                    字符串运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.11" data-path="../../语言参考/运算符/数组运算符.html">
            
                <a href="../../语言参考/运算符/数组运算符.html">
            
                    
                    数组运算符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.6.12" data-path="../../语言参考/运算符/类型运算符.html">
            
                <a href="../../语言参考/运算符/类型运算符.html">
            
                    
                    类型运算符
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.7" data-path="../../语言参考/流程控制.html">
            
                <a href="../../语言参考/流程控制.html">
            
                    
                    流程控制
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.7.1" data-path="../../语言参考/流程控制/if.html">
            
                <a href="../../语言参考/流程控制/if.html">
            
                    
                    if
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.2" data-path="../../语言参考/流程控制/else.html">
            
                <a href="../../语言参考/流程控制/else.html">
            
                    
                    else
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.3" data-path="../../语言参考/流程控制/elseif.html">
            
                <a href="../../语言参考/流程控制/elseif.html">
            
                    
                    elseif
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.4" data-path="../../语言参考/流程控制/while.html">
            
                <a href="../../语言参考/流程控制/while.html">
            
                    
                    while
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.5" data-path="../../语言参考/流程控制/do-while.html">
            
                <a href="../../语言参考/流程控制/do-while.html">
            
                    
                    do-while
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.6" data-path="../../语言参考/流程控制/for.html">
            
                <a href="../../语言参考/流程控制/for.html">
            
                    
                    for
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.7" data-path="../../语言参考/流程控制/foreach.html">
            
                <a href="../../语言参考/流程控制/foreach.html">
            
                    
                    foreach
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.8" data-path="../../语言参考/流程控制/switch.html">
            
                <a href="../../语言参考/流程控制/switch.html">
            
                    
                    switch
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.9" data-path="../../语言参考/流程控制/break.html">
            
                <a href="../../语言参考/流程控制/break.html">
            
                    
                    break
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.10" data-path="../../语言参考/流程控制/continue.html">
            
                <a href="../../语言参考/流程控制/continue.html">
            
                    
                    continue
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.11" data-path="../../语言参考/流程控制/流程控制的替代语法.html">
            
                <a href="../../语言参考/流程控制/流程控制的替代语法.html">
            
                    
                    流程控制的替代语法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.12" data-path="../../语言参考/流程控制/declare.html">
            
                <a href="../../语言参考/流程控制/declare.html">
            
                    
                    declare
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.13" data-path="../../语言参考/流程控制/return.html">
            
                <a href="../../语言参考/流程控制/return.html">
            
                    
                    return
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.14" data-path="../../语言参考/流程控制/require.html">
            
                <a href="../../语言参考/流程控制/require.html">
            
                    
                    require
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.15" data-path="../../语言参考/流程控制/include.html">
            
                <a href="../../语言参考/流程控制/include.html">
            
                    
                    include
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.16" data-path="../../语言参考/流程控制/require_once.html">
            
                <a href="../../语言参考/流程控制/require_once.html">
            
                    
                    require_once
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.17" data-path="../../语言参考/流程控制/include_once.html">
            
                <a href="../../语言参考/流程控制/include_once.html">
            
                    
                    include_once
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.7.18" data-path="../../语言参考/流程控制/goto.html">
            
                <a href="../../语言参考/流程控制/goto.html">
            
                    
                    goto
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.8" data-path="../../语言参考/函数.html">
            
                <a href="../../语言参考/函数.html">
            
                    
                    函数
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.8.1" data-path="../../语言参考/函数/用户自定义函数.html">
            
                <a href="../../语言参考/函数/用户自定义函数.html">
            
                    
                    用户自定义函数
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.8.2" data-path="../../语言参考/函数/函数的参数.html">
            
                <a href="../../语言参考/函数/函数的参数.html">
            
                    
                    函数的参数
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.8.3" data-path="../../语言参考/函数/返回值.html">
            
                <a href="../../语言参考/函数/返回值.html">
            
                    
                    返回值
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.8.4" data-path="../../语言参考/函数/可变函数.html">
            
                <a href="../../语言参考/函数/可变函数.html">
            
                    
                    可变函数
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.8.5" data-path="../../语言参考/函数/匿名函数.html">
            
                <a href="../../语言参考/函数/匿名函数.html">
            
                    
                    匿名函数
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.9" data-path="../../语言参考/类与对象.html">
            
                <a href="../../语言参考/类与对象.html">
            
                    
                    类与对象
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.9.1" data-path="../../语言参考/类与对象/基本语法.html">
            
                <a href="../../语言参考/类与对象/基本语法.html">
            
                    
                    基本语法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.2" data-path="../../语言参考/类与对象/属性.html">
            
                <a href="../../语言参考/类与对象/属性.html">
            
                    
                    属性
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.3" data-path="../../语言参考/类与对象/类常量.html">
            
                <a href="../../语言参考/类与对象/类常量.html">
            
                    
                    类常量
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.4" data-path="../../语言参考/类与对象/类的自动加载.html">
            
                <a href="../../语言参考/类与对象/类的自动加载.html">
            
                    
                    类的自动加载
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.5" data-path="../../语言参考/类与对象/构造函数和析构函数.html">
            
                <a href="../../语言参考/类与对象/构造函数和析构函数.html">
            
                    
                    构造函数和析构函数
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.6" data-path="../../语言参考/类与对象/访问控制.html">
            
                <a href="../../语言参考/类与对象/访问控制.html">
            
                    
                    访问控制
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.7" data-path="../../语言参考/类与对象/对象继承.html">
            
                <a href="../../语言参考/类与对象/对象继承.html">
            
                    
                    对象继承
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.8" data-path="../../语言参考/类与对象/范围解析操作符.html">
            
                <a href="../../语言参考/类与对象/范围解析操作符.html">
            
                    
                    范围解析操作符
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.9" data-path="../../语言参考/类与对象/Static 关键字.html">
            
                <a href="../../语言参考/类与对象/Static 关键字.html">
            
                    
                    Static 关键字
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.10" data-path="../../语言参考/类与对象/抽象类.html">
            
                <a href="../../语言参考/类与对象/抽象类.html">
            
                    
                    抽象类
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.11" data-path="../../语言参考/类与对象/对象接口.html">
            
                <a href="../../语言参考/类与对象/对象接口.html">
            
                    
                    对象接口
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.12" data-path="../../语言参考/类与对象/Trait.html">
            
                <a href="../../语言参考/类与对象/Trait.html">
            
                    
                    Trait
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.13" data-path="../../语言参考/类与对象/匿名类.html">
            
                <a href="../../语言参考/类与对象/匿名类.html">
            
                    
                    匿名类
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.14" data-path="../../语言参考/类与对象/重载.html">
            
                <a href="../../语言参考/类与对象/重载.html">
            
                    
                    重载
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.15" data-path="../../语言参考/类与对象/遍历对象.html">
            
                <a href="../../语言参考/类与对象/遍历对象.html">
            
                    
                    遍历对象
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.16" data-path="../../语言参考/类与对象/魔术方法.html">
            
                <a href="../../语言参考/类与对象/魔术方法.html">
            
                    
                    魔术方法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.17" data-path="../../语言参考/类与对象/Final 关键字.html">
            
                <a href="../../语言参考/类与对象/Final 关键字.html">
            
                    
                    Final 关键字
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.18" data-path="../../语言参考/类与对象/对象复制.html">
            
                <a href="../../语言参考/类与对象/对象复制.html">
            
                    
                    对象复制
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.19" data-path="../../语言参考/类与对象/对象比较.html">
            
                <a href="../../语言参考/类与对象/对象比较.html">
            
                    
                    对象比较
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.20" data-path="../../语言参考/类与对象/类型约束.html">
            
                <a href="../../语言参考/类与对象/类型约束.html">
            
                    
                    类型约束
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.21" data-path="../../语言参考/类与对象/后期静态绑定.html">
            
                <a href="../../语言参考/类与对象/后期静态绑定.html">
            
                    
                    后期静态绑定
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.22" data-path="../../语言参考/类与对象/对象和引用.html">
            
                <a href="../../语言参考/类与对象/对象和引用.html">
            
                    
                    对象和引用
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.9.23" data-path="../../语言参考/类与对象/对象序列化.html">
            
                <a href="../../语言参考/类与对象/对象序列化.html">
            
                    
                    对象序列化
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.10" data-path="../../语言参考/命名空间.html">
            
                <a href="../../语言参考/命名空间.html">
            
                    
                    命名空间
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.10.1" data-path="../../语言参考/命名空间/基本语法.html">
            
                <a href="../../语言参考/命名空间/基本语法.html">
            
                    
                    基本语法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.10.2" data-path="../../语言参考/命名空间/定义子命名空间.html">
            
                <a href="../../语言参考/命名空间/定义子命名空间.html">
            
                    
                    定义子命名空间
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.10.3" data-path="../../语言参考/命名空间/在同一个文件中定义多个命名空间.html">
            
                <a href="../../语言参考/命名空间/在同一个文件中定义多个命名空间.html">
            
                    
                    在同一个文件中定义多个命名空间
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.10.4" data-path="../../语言参考/命名空间/使用命名空间 - 基础.html">
            
                <a href="../../语言参考/命名空间/使用命名空间 - 基础.html">
            
                    
                    使用命名空间 - 基础
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.10.5" data-path="../../语言参考/命名空间/命名空间和动态语言特征.html">
            
                <a href="../../语言参考/命名空间/命名空间和动态语言特征.html">
            
                    
                    命名空间和动态语言特征
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.10.6" data-path="../../语言参考/命名空间/namespace 关键字和 __NAMESPACE__ 魔术常量.html">
            
                <a href="../../语言参考/命名空间/namespace 关键字和 __NAMESPACE__ 魔术常量.html">
            
                    
                    namespace 关键字和 __NAMESPACE__ 魔术常量
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.10.7" data-path="../../语言参考/命名空间/使用命名空间 - 别名和导入.html">
            
                <a href="../../语言参考/命名空间/使用命名空间 - 别名和导入.html">
            
                    
                    使用命名空间 - 别名和导入
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.10.8" data-path="../../语言参考/命名空间/全局空间.html">
            
                <a href="../../语言参考/命名空间/全局空间.html">
            
                    
                    全局空间
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.10.9" data-path="../../语言参考/命名空间/使用命名空间 - 后备全局函数和常量.html">
            
                <a href="../../语言参考/命名空间/使用命名空间 - 后备全局函数和常量.html">
            
                    
                    使用命名空间 - 后备全局函数和常量
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.10.10" data-path="../../语言参考/命名空间/名称解析规则.html">
            
                <a href="../../语言参考/命名空间/名称解析规则.html">
            
                    
                    名称解析规则
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.11" data-path="../../语言参考/Errors.html">
            
                <a href="../../语言参考/Errors.html">
            
                    
                    Errors
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.12" data-path="../../语言参考/异常处理.html">
            
                <a href="../../语言参考/异常处理.html">
            
                    
                    异常处理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.12.1" data-path="../../语言参考/异常处理/基本语法.html">
            
                <a href="../../语言参考/异常处理/基本语法.html">
            
                    
                    基本语法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.12.2" data-path="../../语言参考/异常处理/扩展 PHP 内置的异常处理类.html">
            
                <a href="../../语言参考/异常处理/扩展 PHP 内置的异常处理类.html">
            
                    
                    扩展 PHP 内置的异常处理类
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.13" data-path="../../语言参考/生成器.html">
            
                <a href="../../语言参考/生成器.html">
            
                    
                    生成器
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.13.1" data-path="../../语言参考/生成器/生成器总览.html">
            
                <a href="../../语言参考/生成器/生成器总览.html">
            
                    
                    生成器总览
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.13.2" data-path="../../语言参考/生成器/生成器语法.html">
            
                <a href="../../语言参考/生成器/生成器语法.html">
            
                    
                    生成器语法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.13.3" data-path="../../语言参考/生成器/生成器与 Iterator 对象比较.html">
            
                <a href="../../语言参考/生成器/生成器与 Iterator 对象比较.html">
            
                    
                    生成器与 Iterator 对象比较
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.14" data-path="../../语言参考/引用的解释.html">
            
                <a href="../../语言参考/引用的解释.html">
            
                    
                    引用的解释
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.14.1" data-path="../../语言参考/引用的解释/引用是什么.html">
            
                <a href="../../语言参考/引用的解释/引用是什么.html">
            
                    
                    引用是什么
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.14.2" data-path="../../语言参考/引用的解释/引用不是什么.html">
            
                <a href="../../语言参考/引用的解释/引用不是什么.html">
            
                    
                    引用不是什么
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.14.3" data-path="../../语言参考/引用的解释/引用做什么.html">
            
                <a href="../../语言参考/引用的解释/引用做什么.html">
            
                    
                    引用做什么
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.14.4" data-path="../../语言参考/引用的解释/引用传递.html">
            
                <a href="../../语言参考/引用的解释/引用传递.html">
            
                    
                    引用传递
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.14.5" data-path="../../语言参考/引用的解释/引用返回.html">
            
                <a href="../../语言参考/引用的解释/引用返回.html">
            
                    
                    引用返回
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.14.6" data-path="../../语言参考/引用的解释/取消引用.html">
            
                <a href="../../语言参考/引用的解释/取消引用.html">
            
                    
                    取消引用
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.14.7" data-path="../../语言参考/引用的解释/引用定位.html">
            
                <a href="../../语言参考/引用的解释/引用定位.html">
            
                    
                    引用定位
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.15" data-path="../../语言参考/预定义变量.html">
            
                <a href="../../语言参考/预定义变量.html">
            
                    
                    预定义变量
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.15.1" data-path="../../语言参考/预定义变量/超全局变量.html">
            
                <a href="../../语言参考/预定义变量/超全局变量.html">
            
                    
                    超全局变量
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.2" data-path="../../语言参考/预定义变量/$GLOBALS.html">
            
                <a href="../../语言参考/预定义变量/$GLOBALS.html">
            
                    
                    $GLOBALS
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.3" data-path="../../语言参考/预定义变量/$_GET.html">
            
                <a href="../../语言参考/预定义变量/$_GET.html">
            
                    
                    $_GET
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.4" data-path="../../语言参考/预定义变量/$_POST.html">
            
                <a href="../../语言参考/预定义变量/$_POST.html">
            
                    
                    $_POST
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.5" data-path="../../语言参考/预定义变量/$_COOKIE.html">
            
                <a href="../../语言参考/预定义变量/$_COOKIE.html">
            
                    
                    $_COOKIE
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.6" data-path="../../语言参考/预定义变量/$_REQUEST.html">
            
                <a href="../../语言参考/预定义变量/$_REQUEST.html">
            
                    
                    $_REQUEST
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.7" data-path="../../语言参考/预定义变量/$_FILES.html">
            
                <a href="../../语言参考/预定义变量/$_FILES.html">
            
                    
                    $_FILES
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.8" data-path="../../语言参考/预定义变量/$_SESSION.html">
            
                <a href="../../语言参考/预定义变量/$_SESSION.html">
            
                    
                    $_SESSION
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.9" data-path="../../语言参考/预定义变量/$_SERVER.html">
            
                <a href="../../语言参考/预定义变量/$_SERVER.html">
            
                    
                    $_SERVER
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.10" data-path="../../语言参考/预定义变量/$_ENV.html">
            
                <a href="../../语言参考/预定义变量/$_ENV.html">
            
                    
                    $_ENV
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.11" data-path="../../语言参考/预定义变量/$http_response_header.html">
            
                <a href="../../语言参考/预定义变量/$http_response_header.html">
            
                    
                    $http_response_header
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.12" data-path="../../语言参考/预定义变量/$argc.html">
            
                <a href="../../语言参考/预定义变量/$argc.html">
            
                    
                    $argc
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.15.13" data-path="../../语言参考/预定义变量/$argv.html">
            
                <a href="../../语言参考/预定义变量/$argv.html">
            
                    
                    $argv
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.16" data-path="../../语言参考/预定义异常.html">
            
                <a href="../../语言参考/预定义异常.html">
            
                    
                    预定义异常
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.16.1" data-path="../../语言参考/预定义异常/Exception.html">
            
                <a href="../../语言参考/预定义异常/Exception.html">
            
                    
                    Exception
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.16.2" data-path="../../语言参考/预定义异常/ErrorException.html">
            
                <a href="../../语言参考/预定义异常/ErrorException.html">
            
                    
                    ErrorException
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.17" data-path="../../语言参考/预定义接口.html">
            
                <a href="../../语言参考/预定义接口.html">
            
                    
                    预定义接口
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.17.1" data-path="../../语言参考/预定义接口/Traversable.html">
            
                <a href="../../语言参考/预定义接口/Traversable.html">
            
                    
                    Traversable
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.17.2" data-path="../../语言参考/预定义接口/Iterator.html">
            
                <a href="../../语言参考/预定义接口/Iterator.html">
            
                    
                    Iterator
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.17.3" data-path="../../语言参考/预定义接口/IteratorAggregate.html">
            
                <a href="../../语言参考/预定义接口/IteratorAggregate.html">
            
                    
                    IteratorAggregate
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.17.4" data-path="../../语言参考/预定义接口/ArrayAccess.html">
            
                <a href="../../语言参考/预定义接口/ArrayAccess.html">
            
                    
                    ArrayAccess
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.17.5" data-path="../../语言参考/预定义接口/Serializable.html">
            
                <a href="../../语言参考/预定义接口/Serializable.html">
            
                    
                    Serializable
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.17.6" data-path="../../语言参考/预定义接口/Closure.html">
            
                <a href="../../语言参考/预定义接口/Closure.html">
            
                    
                    Closure
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.17.7" data-path="../../语言参考/预定义接口/Generator.html">
            
                <a href="../../语言参考/预定义接口/Generator.html">
            
                    
                    Generator
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.18" data-path="../../语言参考/上下文选项和参数.html">
            
                <a href="../../语言参考/上下文选项和参数.html">
            
                    
                    上下文选项和参数
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.18.1" data-path="../../语言参考/上下文选项和参数/套接字上下文选项.html">
            
                <a href="../../语言参考/上下文选项和参数/套接字上下文选项.html">
            
                    
                    套接字上下文选项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.18.2" data-path="../../语言参考/上下文选项和参数/HTTP 上下文选项.html">
            
                <a href="../../语言参考/上下文选项和参数/HTTP 上下文选项.html">
            
                    
                    HTTP 上下文选项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.18.3" data-path="../../语言参考/上下文选项和参数/FTP 上下文选项.html">
            
                <a href="../../语言参考/上下文选项和参数/FTP 上下文选项.html">
            
                    
                    FTP 上下文选项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.18.4" data-path="../../语言参考/上下文选项和参数/SSL 上下文选项.html">
            
                <a href="../../语言参考/上下文选项和参数/SSL 上下文选项.html">
            
                    
                    SSL 上下文选项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.18.5" data-path="../../语言参考/上下文选项和参数/CURL 上下文选项.html">
            
                <a href="../../语言参考/上下文选项和参数/CURL 上下文选项.html">
            
                    
                    CURL 上下文选项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.18.6" data-path="../../语言参考/上下文选项和参数/Phar 上下文选项.html">
            
                <a href="../../语言参考/上下文选项和参数/Phar 上下文选项.html">
            
                    
                    Phar 上下文选项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.18.7" data-path="../../语言参考/上下文选项和参数/MongoDB 上下文选项.html">
            
                <a href="../../语言参考/上下文选项和参数/MongoDB 上下文选项.html">
            
                    
                    MongoDB 上下文选项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.18.8" data-path="../../语言参考/上下文选项和参数/Context 参数.html">
            
                <a href="../../语言参考/上下文选项和参数/Context 参数.html">
            
                    
                    Context 参数
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.1.19" data-path="../../语言参考/支持的协议和封装协议.html">
            
                <a href="../../语言参考/支持的协议和封装协议.html">
            
                    
                    支持的协议和封装协议
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1.19.1" data-path="../../语言参考/支持的协议和封装协议/file.html">
            
                <a href="../../语言参考/支持的协议和封装协议/file.html">
            
                    
                    file://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.2" data-path="../../语言参考/支持的协议和封装协议/http.html">
            
                <a href="../../语言参考/支持的协议和封装协议/http.html">
            
                    
                    http://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.3" data-path="../../语言参考/支持的协议和封装协议/ftp.html">
            
                <a href="../../语言参考/支持的协议和封装协议/ftp.html">
            
                    
                    ftp://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.4" data-path="../../语言参考/支持的协议和封装协议/php.html">
            
                <a href="../../语言参考/支持的协议和封装协议/php.html">
            
                    
                    php://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.5" data-path="../../语言参考/支持的协议和封装协议/zlib.html">
            
                <a href="../../语言参考/支持的协议和封装协议/zlib.html">
            
                    
                    zlib://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.6" data-path="../../语言参考/支持的协议和封装协议/data.html">
            
                <a href="../../语言参考/支持的协议和封装协议/data.html">
            
                    
                    data://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.7" data-path="../../语言参考/支持的协议和封装协议/global.html">
            
                <a href="../../语言参考/支持的协议和封装协议/global.html">
            
                    
                    global://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.8" data-path="../../语言参考/支持的协议和封装协议/phar.html">
            
                <a href="../../语言参考/支持的协议和封装协议/phar.html">
            
                    
                    phar://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.9" data-path="../../语言参考/支持的协议和封装协议/ssh2.html">
            
                <a href="../../语言参考/支持的协议和封装协议/ssh2.html">
            
                    
                    ssh2://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.10" data-path="../../语言参考/支持的协议和封装协议/rar.html">
            
                <a href="../../语言参考/支持的协议和封装协议/rar.html">
            
                    
                    rar://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.11" data-path="../../语言参考/支持的协议和封装协议/ogg.html">
            
                <a href="../../语言参考/支持的协议和封装协议/ogg.html">
            
                    
                    ogg://
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.1.19.12" data-path="../../语言参考/支持的协议和封装协议/expect.html">
            
                <a href="../../语言参考/支持的协议和封装协议/expect.html">
            
                    
                    expect://
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2" data-path="../../函数参考.html">
            
                <a href="../../函数参考.html">
            
                    
                    函数参考
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.1" data-path="../影响 PHP 行为的扩展.html">
            
                <a href="../影响 PHP 行为的扩展.html">
            
                    
                    影响 PHP 行为的扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.1.1" data-path="../影响 PHP 行为的扩展/错误处理和日志记录.html">
            
                <a href="../影响 PHP 行为的扩展/错误处理和日志记录.html">
            
                    
                    错误处理和日志记录
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.1.2" data-path="../影响 PHP 行为的扩展/输出缓冲控制.html">
            
                <a href="../影响 PHP 行为的扩展/输出缓冲控制.html">
            
                    
                    输出缓冲控制
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.1.3" data-path="../影响 PHP 行为的扩展/PHP 选项和信息.html">
            
                <a href="../影响 PHP 行为的扩展/PHP 选项和信息.html">
            
                    
                    PHP 选项和信息
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.2" data-path="../加密扩展.html">
            
                <a href="../加密扩展.html">
            
                    
                    加密扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.2.1" data-path="../加密扩展/Hash.html">
            
                <a href="../加密扩展/Hash.html">
            
                    
                    Hash
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.2.2" data-path="../加密扩展/OpenSSL.html">
            
                <a href="../加密扩展/OpenSSL.html">
            
                    
                    OpenSSL
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.2.3" data-path="../加密扩展/密码散列算法.html">
            
                <a href="../加密扩展/密码散列算法.html">
            
                    
                    密码散列算法
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.3" data-path="../数据库扩展.html">
            
                <a href="../数据库扩展.html">
            
                    
                    数据库扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.3.1" data-path="../数据库扩展/数据库抽象层.html">
            
                <a href="../数据库扩展/数据库抽象层.html">
            
                    
                    数据库抽象层
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.3.1.1" data-path="../数据库扩展/数据库抽象层/PDO.html">
            
                <a href="../数据库扩展/数据库抽象层/PDO.html">
            
                    
                    PDO
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.4" data-path="../日期与时间相关扩展.html">
            
                <a href="../日期与时间相关扩展.html">
            
                    
                    日期与时间相关扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.4.1" data-path="../日期与时间相关扩展/日期与时间.html">
            
                <a href="../日期与时间相关扩展/日期与时间.html">
            
                    
                    日期与时间
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.5" data-path="../文件系统相关扩展.html">
            
                <a href="../文件系统相关扩展.html">
            
                    
                    文件系统相关扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.5.1" data-path="../文件系统相关扩展/目录.html">
            
                <a href="../文件系统相关扩展/目录.html">
            
                    
                    目录
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.5.2" data-path="../文件系统相关扩展/文件系统.html">
            
                <a href="../文件系统相关扩展/文件系统.html">
            
                    
                    文件系统
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.6" data-path="../国际化与字符编码支持.html">
            
                <a href="../国际化与字符编码支持.html">
            
                    
                    国际化与字符编码支持
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.6.1" data-path="../国际化与字符编码支持/iconv.html">
            
                <a href="../国际化与字符编码支持/iconv.html">
            
                    
                    iconv
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.6.2" data-path="../国际化与字符编码支持/多字节字符串.html">
            
                <a href="../国际化与字符编码支持/多字节字符串.html">
            
                    
                    多字节字符串
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.7" data-path="../图像生成和处理.html">
            
                <a href="../图像生成和处理.html">
            
                    
                    图像生成和处理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.7.1" data-path="../图像生成和处理/GD.html">
            
                <a href="../图像生成和处理/GD.html">
            
                    
                    GD
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.8" data-path="../邮件相关扩展.html">
            
                <a href="../邮件相关扩展.html">
            
                    
                    邮件相关扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.8.1" data-path="../邮件相关扩展/邮件.html">
            
                <a href="../邮件相关扩展/邮件.html">
            
                    
                    邮件
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.9" data-path="../数学扩展.html">
            
                <a href="../数学扩展.html">
            
                    
                    数学扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.9.1" data-path="../数学扩展/任意精度数学.html">
            
                <a href="../数学扩展/任意精度数学.html">
            
                    
                    任意精度数学
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.9.2" data-path="../数学扩展/数学.html">
            
                <a href="../数学扩展/数学.html">
            
                    
                    数学
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.10" data-path="../进程控制扩展.html">
            
                <a href="../进程控制扩展.html">
            
                    
                    进程控制扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.10.1" data-path="../进程控制扩展/程序执行.html">
            
                <a href="../进程控制扩展/程序执行.html">
            
                    
                    程序执行
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.11" data-path="../其他基本扩展.html">
            
                <a href="../其他基本扩展.html">
            
                    
                    其他基本扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.11.1" data-path="../其他基本扩展/JSON.html">
            
                <a href="../其他基本扩展/JSON.html">
            
                    
                    JSON
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.11.2" data-path="../其他基本扩展/杂项.html">
            
                <a href="../其他基本扩展/杂项.html">
            
                    
                    杂项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.11.3" data-path="../其他基本扩展/PHP 标准库.html">
            
                <a href="../其他基本扩展/PHP 标准库.html">
            
                    
                    PHP 标准库
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.11.4" data-path="../其他基本扩展/Streams.html">
            
                <a href="../其他基本扩展/Streams.html">
            
                    
                    Streams
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.11.5" data-path="../其他基本扩展/Tokenizer.html">
            
                <a href="../其他基本扩展/Tokenizer.html">
            
                    
                    Tokenizer
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.11.6" data-path="../其他基本扩展/URL.html">
            
                <a href="../其他基本扩展/URL.html">
            
                    
                    URL
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.12" data-path="../其他服务.html">
            
                <a href="../其他服务.html">
            
                    
                    其他服务
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.12.1" data-path="../其他服务/cURL.html">
            
                <a href="../其他服务/cURL.html">
            
                    
                    cURL
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.12.2" data-path="../其他服务/网络.html">
            
                <a href="../其他服务/网络.html">
            
                    
                    网络
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.12.3" data-path="../其他服务/Sockets.html">
            
                <a href="../其他服务/Sockets.html">
            
                    
                    Sockets
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.13" data-path="../Session 扩展.html">
            
                <a href="../Session 扩展.html">
            
                    
                    Session 扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.13.1" data-path="../Session 扩展/Session.html">
            
                <a href="../Session 扩展/Session.html">
            
                    
                    Session
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.14" data-path="../文本处理.html">
            
                <a href="../文本处理.html">
            
                    
                    文本处理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.14.1" data-path="../文本处理/正则表达式.html">
            
                <a href="../文本处理/正则表达式.html">
            
                    
                    正则表达式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.14.2" data-path="../文本处理/字符串.html">
            
                <a href="../文本处理/字符串.html">
            
                    
                    字符串
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.15" data-path="../变量与类型相关扩展.html">
            
                <a href="../变量与类型相关扩展.html">
            
                    
                    变量与类型相关扩展
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.15.1" data-path="数组.html">
            
                <a href="数组.html">
            
                    
                    数组
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.15.2" data-path="类与对象.html">
            
                <a href="类与对象.html">
            
                    
                    类与对象
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.15.3" data-path="字符类型检测.html">
            
                <a href="字符类型检测.html">
            
                    
                    字符类型检测
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.15.4" data-path="过滤器.html">
            
                <a href="过滤器.html">
            
                    
                    过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.15.5" data-path="函数处理.html">
            
                <a href="函数处理.html">
            
                    
                    函数处理
            
                </a>
            

            
        </li>
    
        <li class="chapter active" data-level="1.1.2.15.6" data-path="反射.html">
            
                <a href="反射.html">
            
                    
                    反射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.15.7" data-path="变量.html">
            
                <a href="变量.html">
            
                    
                    变量
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.2.16" data-path="../XML 操作.html">
            
                <a href="../XML 操作.html">
            
                    
                    XML 操作
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.2.16.1" data-path="../XML 操作/SimpleXML.html">
            
                <a href="../XML 操作/SimpleXML.html">
            
                    
                    SimpleXML
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.2.16.2" data-path="../XML 操作/XML 解析器.html">
            
                <a href="../XML 操作/XML 解析器.html">
            
                    
                    XML 解析器
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.3" data-path="../../会话和安全.html">
            
                <a href="../../会话和安全.html">
            
                    
                    会话和安全
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.3.1" data-path="../../会话和安全/会话管理基础.html">
            
                <a href="../../会话和安全/会话管理基础.html">
            
                    
                    会话管理基础
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.3.2" data-path="../../会话和安全/和会话安全相关的配置项.html">
            
                <a href="../../会话和安全/和会话安全相关的配置项.html">
            
                    
                    和会话安全相关的配置项
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.4" data-path="../../PHP 的命令行模式.html">
            
                <a href="../../PHP 的命令行模式.html">
            
                    
                    PHP 的命令行模式
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.4.1" data-path="../../PHP 的命令行模式/内置的 Web 服务器.html">
            
                <a href="../../PHP 的命令行模式/内置的 Web 服务器.html">
            
                    
                    内置的 Web 服务器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.4.2" data-path="../../PHP 的命令行模式/和命令行模式相关的配置项.html">
            
                <a href="../../PHP 的命令行模式/和命令行模式相关的配置项.html">
            
                    
                    和命令行模式相关的配置项
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.1.5" data-path="../../垃圾回收机制.html">
            
                <a href="../../垃圾回收机制.html">
            
                    
                    垃圾回收机制
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.6" data-path="../../PHP 类型比较表.html">
            
                <a href="../../PHP 类型比较表.html">
            
                    
                    PHP 类型比较表
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.7" data-path="../../PSR.html">
            
                <a href="../../PSR.html">
            
                    
                    PSR
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.7.1" data-path="../../PSR/PSR-1 基础编码规范.html">
            
                <a href="../../PSR/PSR-1 基础编码规范.html">
            
                    
                    PSR-1 基础编码规范
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.7.2" data-path="../../PSR/PSR-4 自动加载规范.html">
            
                <a href="../../PSR/PSR-4 自动加载规范.html">
            
                    
                    PSR-4 自动加载规范
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.7.3" data-path="../../PSR/PSR-12 编码规范扩充.html">
            
                <a href="../../PSR/PSR-12 编码规范扩充.html">
            
                    
                    PSR-12 编码规范扩充
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            本书使用 GitBook 发布
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="../../.." >反射</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <h1 id="&#x53CD;&#x5C04;">&#x53CD;&#x5C04;</h1>
<ul>
<li><a href="#reflection">Reflection</a><ul>
<li><a href="#reflectiongetmodifiernames">Reflection::getModifierNames - &#x83B7;&#x53D6;&#x4FEE;&#x9970;&#x7B26;&#x7684;&#x540D;&#x79F0;</a></li>
</ul>
</li>
<li><a href="#reflectionclass">ReflectionClass</a><ul>
<li><a href="#reflectionclassconstruct">ReflectionClass::__construct - &#x521D;&#x59CB;&#x5316; ReflectionClass &#x7C7B;</a></li>
<li><a href="#reflectionclassgetconstant">ReflectionClass::getConstant - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6307;&#x5B9A;&#x5E38;&#x91CF;</a></li>
<li><a href="#reflectionclassgetconstants">ReflectionClass::getConstants - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6240;&#x6709;&#x5E38;&#x91CF;</a></li>
<li><a href="#reflectionclassgetconstructor">ReflectionClass::getConstructor - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6784;&#x9020;&#x51FD;&#x6570;</a></li>
<li><a href="#reflectionclassgetdefaultproperties">ReflectionClass::getDefaultProperties - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x9ED8;&#x8BA4;&#x5C5E;&#x6027;</a></li>
<li><a href="#reflectionclassgetdoccomment">ReflectionClass::getDocComment - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6587;&#x6863;&#x6CE8;&#x91CA;</a></li>
<li><a href="#reflectionclassgetendline">ReflectionClass::getEndLine - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6700;&#x540E;&#x4E00;&#x884C;&#x7684;&#x884C;&#x6570;</a></li>
<li><a href="#reflectionclassgetextension">ReflectionClass::getExtension - &#x6839;&#x636E;&#x5DF2;&#x5B9A;&#x4E49;&#x7684;&#x7C7B;&#x83B7;&#x53D6;&#x6240;&#x5728;&#x6269;&#x5C55;&#x7684; ReflectionExtension &#x5BF9;&#x8C61;</a></li>
<li><a href="#reflectionclassgetextensionname">ReflectionClass::getExtensionName - &#x83B7;&#x53D6;&#x5B9A;&#x4E49;&#x7684;&#x7C7B;&#x6240;&#x5728;&#x7684;&#x6269;&#x5C55;&#x7684;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionclassgetfilename">ReflectionClass::getFileName - &#x83B7;&#x53D6;&#x5B9A;&#x4E49;&#x7C7B;&#x7684;&#x6587;&#x4EF6;&#x540D;</a></li>
<li><a href="#reflectionclassgetinterfacenames">ReflectionClass::getInterfaceNames - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x63A5;&#x53E3;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionclassgetinterfaces">ReflectionClass::getInterfaces - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x63A5;&#x53E3;</a></li>
<li><a href="#reflectionclassgetmethod">ReflectionClass::getMethod - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6307;&#x5B9A;&#x65B9;&#x6CD5;</a></li>
<li><a href="#reflectionclassgetmethods">ReflectionClass::getMethods - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x65B9;&#x6CD5;&#x7684;&#x6570;&#x7EC4;</a></li>
<li><a href="#reflectionclassgetmodifiers">ReflectionClass::getModifiers - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x4FEE;&#x9970;&#x7B26;</a></li>
<li><a href="#reflectionclassgetname">ReflectionClass::getName - &#x83B7;&#x53D6;&#x7C7B;&#x540D;</a></li>
<li><a href="#reflectionclassgetnamespacename">ReflectionClass::getNamespaceName - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x547D;&#x540D;&#x7A7A;&#x95F4;&#x7684;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionclassgetparentclass">ReflectionClass::getParentClass - &#x83B7;&#x53D6;&#x7236;&#x7C7B;</a></li>
<li><a href="#reflectionclassgetproperties">ReflectionClass::getProperties - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x4E00;&#x7EC4;&#x5C5E;&#x6027;</a></li>
<li><a href="#reflectionclassgetproperty">ReflectionClass::getProperty - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6307;&#x5B9A;&#x5C5E;&#x6027;</a></li>
<li><a href="#reflectionclassgetreflectionconstant">ReflectionClass::getReflectionConstant - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6307;&#x5B9A;&#x5E38;&#x91CF;</a></li>
<li><a href="#reflectionclassgetreflectionconstants">ReflectionClass::getReflectionConstants - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6240;&#x6709;&#x5E38;&#x91CF;</a></li>
<li><a href="#reflectionclassgetshortname">ReflectionClass::getShortName - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x77ED;&#x540D;</a></li>
<li><a href="#reflectionclassgetstartline">ReflectionClass::getStartLine - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x8D77;&#x59CB;&#x884C;&#x53F7;</a></li>
<li><a href="#reflectionclassgetstaticproperties">ReflectionClass::getStaticProperties - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x9759;&#x6001;&#x5C5E;&#x6027;</a></li>
<li><a href="#reflectionclassgetstaticpropertyvalue">ReflectionClass::getStaticPropertyValue - &#x83B7;&#x53D6;&#x7C7B;&#x7684;&#x6307;&#x5B9A;&#x9759;&#x6001;&#x5C5E;&#x6027;&#x7684;&#x503C;</a></li>
<li><a href="#reflectionclassgettraitaliases">ReflectionClass::getTraitAliases - &#x8FD4;&#x56DE; Trait &#x522B;&#x540D;&#x7684;&#x4E00;&#x4E2A;&#x6570;&#x7EC4;</a></li>
<li><a href="#reflectionclassgettraitnames">ReflectionClass::getTraitNames - &#x8FD4;&#x56DE;&#x7C7B;&#x6240;&#x4F7F;&#x7528;&#x7684; Trait &#x7684;&#x540D;&#x79F0;&#x7684;&#x6570;&#x7EC4;</a></li>
<li><a href="#reflectionclassgettraits">ReflectionClass::getTraits - &#x8FD4;&#x56DE;&#x7C7B;&#x6240;&#x4F7F;&#x7528;&#x7684; Trait &#x7684;&#x6570;&#x7EC4;</a></li>
<li><a href="#reflectionclasshasconstant">ReflectionClass::hasConstant - &#x68C0;&#x67E5;&#x7C7B;&#x7684;&#x6307;&#x5B9A;&#x7684;&#x5E38;&#x91CF;&#x662F;&#x5426;&#x5DF2;&#x7ECF;&#x5B9A;&#x4E49;</a></li>
<li><a href="#reflectionclasshasmethod">ReflectionClass::hasMethod - &#x68C0;&#x67E5;&#x7C7B;&#x7684;&#x6307;&#x5B9A;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x5DF2;&#x5B9A;&#x4E49;</a></li>
<li><a href="#reflectionclasshasproperty">ReflectionClass::hasProperty - &#x68C0;&#x67E5;&#x7C7B;&#x7684;&#x6307;&#x5B9A;&#x7684;&#x5C5E;&#x6027;&#x662F;&#x5426;&#x5DF2;&#x5B9A;&#x4E49;</a></li>
<li><a href="#reflectionclassimplementsinterface">ReflectionClass::implementsInterface - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x5B9E;&#x73B0;&#x4E86;&#x6307;&#x5B9A;&#x7684;&#x63A5;&#x53E3;</a></li>
<li><a href="#reflectionclassinnamespace">ReflectionClass::inNamespace - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x4F4D;&#x4E8E;&#x547D;&#x540D;&#x7A7A;&#x95F4;&#x4E2D;</a></li>
<li><a href="#reflectionclassisabstract">ReflectionClass::isAbstract - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x662F;&#x62BD;&#x8C61;&#x7C7B;</a></li>
<li><a href="#reflectionclassisanonymous">ReflectionClass::isAnonymous - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x662F;&#x533F;&#x540D;&#x7C7B;</a></li>
<li><a href="#reflectionclassiscloneable">ReflectionClass::isCloneable - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x53EF;&#x590D;&#x5236;</a></li>
<li><a href="#reflectionclassisfinal">ReflectionClass::isFinal - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; final</a></li>
<li><a href="#reflectionclassisinstance">ReflectionClass::isInstance - &#x68C0;&#x67E5;&#x662F;&#x5426;&#x662F;&#x6307;&#x5B9A;&#x7C7B;&#x7684;&#x5B9E;&#x4F8B;</a></li>
<li><a href="#reflectionclassisinstantiable">ReflectionClass::isInstantiable - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x53EF;&#x5B9E;&#x4F8B;&#x5316;</a></li>
<li><a href="#reflectionclassisinterface">ReflectionClass::isInterface - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x662F;&#x63A5;&#x53E3;</a></li>
<li><a href="#reflectionclassisinternal">ReflectionClass::isInternal - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x7531;&#x6269;&#x5C55;&#x6216;&#x6838;&#x5FC3;&#x5728;&#x5185;&#x90E8;&#x5B9A;&#x4E49;</a></li>
<li><a href="#reflectionclassisiterable">ReflectionClass::isIterable - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x53EF;&#x8FED;&#x4EE3;</a></li>
<li><a href="#reflectionclassisiterateable">ReflectionClass::isIterateable - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x53EF;&#x8FED;&#x4EE3;</a></li>
<li><a href="#reflectionclassissubclassof">ReflectionClass::isSubclassOf - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x4E3A;&#x6307;&#x5B9A;&#x7C7B;&#x7684;&#x5B50;&#x7C7B;</a></li>
<li><a href="#reflectionclassistrait">ReflectionClass::isTrait - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x662F; Trait</a></li>
<li><a href="#reflectionclassisuserdefined">ReflectionClass::isUserDefined - &#x68C0;&#x67E5;&#x7C7B;&#x662F;&#x5426;&#x662F;&#x7531;&#x7528;&#x6237;&#x5B9A;&#x4E49;&#x7684;</a></li>
<li><a href="#reflectionclassnewinstance">ReflectionClass::newInstance - &#x4ECE;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x7C7B;&#x5B9E;&#x4F8B;</a></li>
<li><a href="#reflectionclassnewinstanceargs">ReflectionClass::newInstanceArgs - &#x4ECE;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x7C7B;&#x5B9E;&#x4F8B;</a></li>
<li><a href="#reflectionclassnewinstancewithoutconstructor">ReflectionClass::newInstanceWithoutConstructor - &#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x7C7B;&#x5B9E;&#x4F8B;&#x800C;&#x4E0D;&#x8C03;&#x7528;&#x5B83;&#x7684;&#x6784;&#x9020;&#x51FD;&#x6570;</a></li>
<li><a href="#reflectionclasssetstaticpropertyvalue">ReflectionClass::setStaticPropertyValue - &#x8BBE;&#x7F6E;&#x7C7B;&#x7684;&#x9759;&#x6001;&#x5C5E;&#x6027;&#x7684;&#x503C;</a></li>
<li><a href="#reflectionclasstostring">ReflectionClass::__toString - &#x8FD4;&#x56DE; ReflectionClass &#x5BF9;&#x8C61;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8868;&#x793A;&#x5F62;&#x5F0F;</a></li>
</ul>
</li>
<li><a href="#reflectionclassconstant">ReflectionClassConstant</a><ul>
<li><a href="#reflectionclassconstantconstruct">ReflectionClassConstant::__construct - &#x521D;&#x59CB;&#x5316; ReflectionClassConstant &#x7C7B;</a></li>
<li><a href="#reflectionclassconstantgetdeclaringclass">ReflectionClassConstant::getDeclaringClass - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5E38;&#x91CF;&#x58F0;&#x660E;&#x6240;&#x5728;&#x7684;&#x7C7B;</a></li>
<li><a href="#reflectionclassconstantgetdoccomment">ReflectionClassConstant::getDocComment - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5E38;&#x91CF;&#x7684;&#x6587;&#x6863;&#x6CE8;&#x91CA;</a></li>
<li><a href="#reflectionclassconstantgetmodifiers">ReflectionClassConstant::getModifiers - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5E38;&#x91CF;&#x7684;&#x4FEE;&#x9970;&#x7B26;</a></li>
<li><a href="#reflectionclassconstantgetname">ReflectionClassConstant::getName - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5E38;&#x91CF;&#x540D;</a></li>
<li><a href="#reflectionclassconstantgetvalue">ReflectionClassConstant::getValue - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5E38;&#x91CF;&#x7684;&#x503C;</a></li>
<li><a href="#reflectionclassconstantisprivate">ReflectionClassConstant::isPrivate - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5E38;&#x91CF;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; private</a></li>
<li><a href="#reflectionclassconstantisprotected">ReflectionClassConstant::isProtected - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5E38;&#x91CF;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; protected</a></li>
<li><a href="#reflectionclassconstantispublic">ReflectionClassConstant::isPublic - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5E38;&#x91CF;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; public</a></li>
<li><a href="#reflectionclassconstanttostring">ReflectionClassConstant::__toString - &#x8FD4;&#x56DE; ReflectionClassConstant &#x5BF9;&#x8C61;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8868;&#x793A;&#x5F62;&#x5F0F;</a></li>
</ul>
</li>
<li><a href="#reflectionzendextension">ReflectionZendExtension</a><ul>
<li><a href="#reflectionzendextensionconstruct">ReflectionZendExtension::__construct - &#x521D;&#x59CB;&#x5316; ReflectionZendExtension &#x7C7B;</a></li>
<li><a href="#reflectionzendextensiongetauthor">ReflectionZendExtension::getAuthor - &#x83B7;&#x53D6; Zend &#x6269;&#x5C55;&#x7684;&#x4F5C;&#x8005;</a></li>
<li><a href="#reflectionzendextensiongetcopyright">ReflectionZendExtension::getCopyright - &#x83B7;&#x53D6; Zend &#x6269;&#x5C55;&#x7684;&#x7248;&#x6743;&#x4FE1;&#x606F;</a></li>
<li><a href="#reflectionzendextensiongetname">ReflectionZendExtension::getName - &#x83B7;&#x53D6; Zend &#x6269;&#x5C55;&#x7684;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionzendextensiongeturl">ReflectionZendExtension::getURL - &#x83B7;&#x53D6; Zend &#x6269;&#x5C55;&#x7684; URL</a></li>
<li><a href="#reflectionzendextensiongetversion">ReflectionZendExtension::getVersion - &#x83B7;&#x53D6; Zend &#x6269;&#x5C55;&#x7684;&#x7248;&#x672C;</a></li>
<li><a href="#reflectionzendextensiontostring">ReflectionZendExtension::__toString - &#x8FD4;&#x56DE; ReflectionZendExtension &#x5BF9;&#x8C61;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8868;&#x793A;&#x5F62;&#x5F0F;</a></li>
</ul>
</li>
<li><a href="#reflectionextension">ReflectionExtension</a><ul>
<li><a href="#reflectionextensionconstruct">ReflectionExtension::__construct - &#x521D;&#x59CB;&#x5316; ReflectionExtension &#x7C7B;</a></li>
<li><a href="#reflectionextensiongetclasses">ReflectionExtension::getClasses - &#x83B7;&#x53D6;&#x6269;&#x5C55;&#x4E2D;&#x7684;&#x7C7B;&#x5217;&#x8868;</a></li>
<li><a href="#reflectionextensiongetclassnames">ReflectionExtension::getClassNames - &#x83B7;&#x53D6;&#x6269;&#x5C55;&#x4E2D;&#x7684;&#x7C7B;&#x540D;&#x79F0;&#x5217;&#x8868;</a></li>
<li><a href="#reflectionextensiongetconstants">ReflectionExtension::getConstants - &#x83B7;&#x53D6;&#x6269;&#x5C55;&#x4E2D;&#x7684;&#x7C7B;&#x5E38;&#x91CF;</a></li>
<li><a href="#reflectionextensiongetdependencies">ReflectionExtension::getDependencies - &#x83B7;&#x53D6;&#x6269;&#x5C55;&#x4E2D;&#x7684;&#x4F9D;&#x8D56;</a></li>
<li><a href="#reflectionextensiongetfunctions">ReflectionExtension::getFunctions - &#x83B7;&#x53D6;&#x6269;&#x5C55;&#x4E2D;&#x7684;&#x51FD;&#x6570;</a></li>
<li><a href="#reflectionextensiongetinientries">ReflectionExtension::getINIEntries - &#x83B7;&#x53D6;&#x6269;&#x5C55;&#x5728; ini &#x6587;&#x4EF6;&#x4E2D;&#x7684;&#x914D;&#x7F6E;</a></li>
<li><a href="#reflectionextensiongetname">ReflectionExtension::getName - &#x83B7;&#x53D6;&#x6269;&#x5C55;&#x7684;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionextensiongetversion">ReflectionExtension::getVersion - &#x83B7;&#x53D6;&#x6269;&#x5C55;&#x7684;&#x7248;&#x672C;&#x53F7;</a></li>
<li><a href="#reflectionextensioninfo">ReflectionExtension::info - &#x8F93;&#x51FA;&#x6269;&#x5C55;&#x7684;&#x4FE1;&#x606F;</a></li>
<li><a href="#reflectionextensionispersistent">ReflectionExtension::isPersistent - &#x8FD4;&#x56DE;&#x6269;&#x5C55;&#x662F;&#x5426;&#x6301;&#x4E45;&#x5316;&#x8F7D;&#x5165;</a></li>
<li><a href="#reflectionextensionistemporary">ReflectionExtension::isTemporary - &#x8FD4;&#x56DE;&#x6269;&#x5C55;&#x662F;&#x5426;&#x662F;&#x4E34;&#x65F6;&#x8F7D;&#x5165;</a></li>
<li><a href="#reflectionextensiontostring">ReflectionExtension::__toString - &#x8FD4;&#x56DE; ReflectionExtension &#x5BF9;&#x8C61;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8868;&#x793A;&#x5F62;&#x5F0F;</a></li>
</ul>
</li>
<li><a href="#reflectionfunction">ReflectionFunction</a><ul>
<li><a href="#reflectionfunctionconstruct">ReflectionFunction::__construct - &#x521D;&#x59CB;&#x5316; ReflectionFunction &#x7C7B;</a></li>
<li><a href="#reflectionfunctiongetclosure">ReflectionFunction::getClosure - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x52A8;&#x6001;&#x521B;&#x5EFA;&#x7684;&#x95ED;&#x5305;</a></li>
<li><a href="#reflectionfunctioninvoke">ReflectionFunction::invoke - &#x8C03;&#x7528;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;</a></li>
<li><a href="#reflectionfunctioninvokeargs">ReflectionFunction::invokeArgs - &#x8C03;&#x7528;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x5E76;&#x5C06;&#x5176;&#x53C2;&#x6570;&#x4F5C;&#x4E3A;&#x6570;&#x7EC4;&#x4F20;&#x9012;</a></li>
<li><a href="#reflectionfunctionisdisabled">ReflectionFunction::isDisabled - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x88AB;&#x7981;&#x7528;</a></li>
<li><a href="#reflectionfunctiontostring">ReflectionFunction::__toString - &#x8FD4;&#x56DE; ReflectionFunction &#x5BF9;&#x8C61;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8868;&#x793A;&#x5F62;&#x5F0F;</a></li>
</ul>
</li>
<li><a href="#reflectionfunctionabstract">ReflectionFunctionAbstract</a><ul>
<li><a href="#reflectionfunctionabstractgetclosurescopeclass">ReflectionFunctionAbstract::getClosureScopeClass - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x4E0E;&#x95ED;&#x5305;&#x5173;&#x8054;&#x7684;&#x8303;&#x56F4;</a></li>
<li><a href="#reflectionfunctionabstractgetclosurethis">ReflectionFunctionAbstract::getClosureThis - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x7684;&#x533F;&#x540D;&#x51FD;&#x6570;</a></li>
<li><a href="#reflectionfunctionabstractgetdoccomment">ReflectionFunctionAbstract::getDocComment - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x6587;&#x6863;&#x6CE8;&#x91CA;</a></li>
<li><a href="#reflectionfunctionabstractgetendline">ReflectionFunctionAbstract::getEndLine - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x7ED3;&#x675F;&#x884C;&#x53F7;</a></li>
<li><a href="#reflectionfunctionabstractgetextension">ReflectionFunctionAbstract::getExtension - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x6269;&#x5C55;&#x4FE1;&#x606F;</a></li>
<li><a href="#reflectionfunctionabstractgetextensionname">ReflectionFunctionAbstract::getExtensionName - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x6269;&#x5C55;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionfunctionabstractgetfilename">ReflectionFunctionAbstract::getFileName - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x6240;&#x5728;&#x7684;&#x6587;&#x4EF6;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionfunctionabstractgetname">ReflectionFunctionAbstract::getName - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionfunctionabstractgetnamespacename">ReflectionFunctionAbstract::getNamespaceName - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x547D;&#x540D;&#x7A7A;&#x95F4;</a></li>
<li><a href="#reflectionfunctionabstractgetnumberofparameters">ReflectionFunctionAbstract::getNumberOfParameters - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x53C2;&#x6570;&#x6570;&#x76EE;</a></li>
<li><a href="#reflectionfunctionabstractgetnumberofrequiredparameters">ReflectionFunctionAbstract::getNumberOfRequiredParameters - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x5FC5;&#x987B;&#x8F93;&#x5165;&#x53C2;&#x6570;&#x7684;&#x4E2A;&#x6570;</a></li>
<li><a href="#reflectionfunctionabstractgetparameters">ReflectionFunctionAbstract::getParameters - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x53C2;&#x6570;</a></li>
<li><a href="#reflectionfunctionabstractgetreturntype">ReflectionFunctionAbstract::getReturnType - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x8FD4;&#x56DE;&#x7C7B;&#x578B;</a></li>
<li><a href="#reflectionfunctionabstractgetshortname">ReflectionFunctionAbstract::getShortName - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x77ED;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionfunctionabstractgetstartline">ReflectionFunctionAbstract::getStartLine - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x5F00;&#x59CB;&#x884C;&#x53F7;</a></li>
<li><a href="#reflectionfunctionabstractgetstaticvariables">ReflectionFunctionAbstract::getStaticVariables - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x7684;&#x9759;&#x6001;&#x53D8;&#x91CF;</a></li>
<li><a href="#reflectionfunctionabstracthasreturntype">ReflectionFunctionAbstract::hasReturnType - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x58F0;&#x660E;&#x8FD4;&#x56DE;&#x7C7B;&#x578B;</a></li>
<li><a href="#reflectionfunctionabstractinnamespace">ReflectionFunctionAbstract::inNamespace - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x5904;&#x4E8E;&#x547D;&#x540D;&#x7A7A;&#x95F4;</a></li>
<li><a href="#reflectionfunctionabstractisclosure">ReflectionFunctionAbstract::isClosure - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x662F;&#x533F;&#x540D;&#x51FD;&#x6570;</a></li>
<li><a href="#reflectionfunctionabstractisdeprecated">ReflectionFunctionAbstract::isDeprecated - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x5DF2;&#x7ECF;&#x5F03;&#x7528;</a></li>
<li><a href="#reflectionfunctionabstractisgenerator">ReflectionFunctionAbstract::isGenerator - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x662F;&#x751F;&#x6210;&#x5668;</a></li>
<li><a href="#reflectionfunctionabstractisinternal">ReflectionFunctionAbstract::isInternal - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x662F;&#x5185;&#x7F6E;&#x51FD;&#x6570;</a></li>
<li><a href="#reflectionfunctionabstractisuserdefined">ReflectionFunctionAbstract::isUserDefined - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x662F;&#x7528;&#x6237;&#x81EA;&#x5B9A;&#x4E49;</a></li>
<li><a href="#reflectionfunctionabstractisvariadic">ReflectionFunctionAbstract::isVariadic - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x662F;&#x53EF;&#x53D8;&#x51FD;&#x6570;</a></li>
<li><a href="#reflectionfunctionabstractreturnsreference">ReflectionFunctionAbstract::returnsReference - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x51FD;&#x6570;&#x662F;&#x5426;&#x8FD4;&#x56DE;&#x5F15;&#x7528;</a></li>
</ul>
</li>
<li><a href="#reflectionmethod">ReflectionMethod</a><ul>
<li><a href="#reflectionmethodconstruct">ReflectionMethod::__construct - &#x521D;&#x59CB;&#x5316; ReflectionMethod &#x7C7B;</a></li>
<li><a href="#reflectionmethodgetclosure">ReflectionMethod::getClosure - &#x8FD4;&#x56DE;&#x4E00;&#x4E2A;&#x52A8;&#x6001;&#x5EFA;&#x7ACB;&#x7684;&#x65B9;&#x6CD5;&#x8C03;&#x7528;&#x63A5;&#x53E3;&#xFF0C;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8C03;&#x7528;&#x975E;&#x516C;&#x5F00;&#x65B9;&#x6CD5;</a></li>
<li><a href="#reflectionmethodgetdeclaringclass">ReflectionMethod::getDeclaringClass - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x58F0;&#x660E;&#x6240;&#x5728;&#x7684;&#x7C7B;</a></li>
<li><a href="#reflectionmethodgetmodifiers">ReflectionMethod::getModifiers - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x7684;&#x4FEE;&#x9970;&#x7B26;</a></li>
<li><a href="#reflectionmethodgetprototype">ReflectionMethod::getPrototype - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x7684;&#x539F;&#x578B;</a></li>
<li><a href="#reflectionmethodinvoke">ReflectionMethod::invoke - &#x8C03;&#x7528;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;</a></li>
<li><a href="#reflectionmethodinvokeargs">ReflectionMethod::invokeArgs - &#x8C03;&#x7528;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;</a></li>
<li><a href="#reflectionmethodisabstract">ReflectionMethod::isAbstract - &#x5224;&#x65AD;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x662F;&#x62BD;&#x8C61;&#x65B9;&#x6CD5;</a></li>
<li><a href="#reflectionmethodisconstructor">ReflectionMethod::isConstructor - &#x5224;&#x65AD;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x662F;&#x6784;&#x9020;&#x65B9;&#x6CD5;</a></li>
<li><a href="#reflectionmethodisdestructor">ReflectionMethod::isDestructor - &#x5224;&#x65AD;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x662F;&#x6790;&#x6784;&#x65B9;&#x6CD5;</a></li>
<li><a href="#reflectionmethodisfinal">ReflectionMethod::isFinal - &#x5224;&#x65AD;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; final</a></li>
<li><a href="#reflectionmethodisprivate">ReflectionMethod::isPrivate - &#x5224;&#x65AD;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; private</a></li>
<li><a href="#reflectionmethodisprotected">ReflectionMethod::isProtected - &#x5224;&#x65AD;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; protected</a></li>
<li><a href="#reflectionmethodispublic">ReflectionMethod::isPublic - &#x5224;&#x65AD;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; public</a></li>
<li><a href="#reflectionmethodisstatic">ReflectionMethod::isStatic - &#x5224;&#x65AD;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; static</a></li>
<li><a href="#reflectionmethodsetaccessible">ReflectionMethod::setAccessible - &#x8BBE;&#x7F6E;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x8BBF;&#x95EE;</a></li>
<li><a href="#reflectionmethodtostring">ReflectionMethod::__toString - &#x8FD4;&#x56DE; ReflectionMethod &#x5BF9;&#x8C61;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8868;&#x793A;&#x5F62;&#x5F0F;</a></li>
</ul>
</li>
<li><a href="#reflectionobject">ReflectionObject</a><ul>
<li><a href="#reflectionobjectconstruct">ReflectionObject::__construct - &#x521D;&#x59CB;&#x5316; ReflectionObject &#x7C7B;</a></li>
</ul>
</li>
<li><a href="#reflectionparameter">ReflectionParameter</a><ul>
<li><a href="#reflectionparameterconstruct">ReflectionParameter::__construct - &#x521D;&#x59CB;&#x5316; ReflectionParameter &#x7C7B;</a></li>
<li><a href="#reflectionparameterallowsnull">ReflectionParameter::allowsNull - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x5141;&#x8BB8;&#x4E3A;&#x7A7A;</a></li>
<li><a href="#reflectionparametercanbepassedbyvalue">ReflectionParameter::canBePassedByValue - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x6309;&#x503C;&#x4F20;&#x9012;</a></li>
<li><a href="#reflectionparametergetclass">ReflectionParameter::getClass - &#x83B7;&#x5F97;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x7684;&#x7C7B;&#x578B;&#x63D0;&#x793A;&#x7684;&#x7C7B;</a></li>
<li><a href="#reflectionparametergetdeclaringclass">ReflectionParameter::getDeclaringClass - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x58F0;&#x660E;&#x6240;&#x5728;&#x7684;&#x7C7B;</a></li>
<li><a href="#reflectionparametergetdeclaringfunction">ReflectionParameter::getDeclaringFunction - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x58F0;&#x660E;&#x6240;&#x5728;&#x7684;&#x51FD;&#x6570;</a></li>
<li><a href="#reflectionparametergetdefaultvalue">ReflectionParameter::getDefaultValue - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x7684;&#x9ED8;&#x8BA4;&#x503C;</a></li>
<li><a href="#reflectionparametergetdefaultvalueconstantname">ReflectionParameter::getDefaultValueConstantName - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x7684;&#x9ED8;&#x8BA4;&#x503C;&#x7684;&#x5E38;&#x91CF;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionparametergetname">ReflectionParameter::getName - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x7684;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionparametergetposition">ReflectionParameter::getPosition - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x7684;&#x4F4D;&#x7F6E;</a></li>
<li><a href="#reflectionparametergettype">ReflectionParameter::getType - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x7684;&#x7C7B;&#x578B;</a></li>
<li><a href="#reflectionparameterhastype">ReflectionParameter::hasType - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x5B58;&#x5728;&#x7C7B;&#x578B;&#x58F0;&#x660E;</a></li>
<li><a href="#reflectionparameterisarray">ReflectionParameter::isArray - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x662F;&#x6570;&#x7EC4;</a></li>
<li><a href="#reflectionparameteriscallable">ReflectionParameter::isCallable - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x662F;&#x53EF;&#x8C03;&#x7528;&#x578B;</a></li>
<li><a href="#reflectionparameterisdefaultvalueavailable">ReflectionParameter::isDefaultValueAvailable - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x6709;&#x9ED8;&#x8BA4;&#x503C;</a></li>
<li><a href="#reflectionparameterisdefaultvalueconstant">ReflectionParameter::isDefaultValueConstant - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x7684;&#x9ED8;&#x8BA4;&#x662F;&#x662F;&#x5426;&#x662F;&#x5E38;&#x91CF;</a></li>
<li><a href="#reflectionparameterisoptional">ReflectionParameter::isOptional - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x662F;&#x53EF;&#x9009;&#x7684;</a></li>
<li><a href="#reflectionparameterispassedbyreference">ReflectionParameter::isPassedByReference - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x6309;&#x5F15;&#x7528;&#x4F20;&#x9012;</a></li>
<li><a href="#reflectionparameterisvariadic">ReflectionParameter::isVariadic - &#x8FD4;&#x56DE;&#x6307;&#x5B9A;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x662F;&#x53EF;&#x53D8;&#x53C2;&#x6570;</a></li>
<li><a href="#reflectionparametertostring">ReflectionParameter::__toString - &#x8FD4;&#x56DE; ReflectionParameter &#x5BF9;&#x8C61;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8868;&#x793A;&#x5F62;&#x5F0F;</a></li>
</ul>
</li>
<li><a href="#reflectionproperty">ReflectionProperty</a><ul>
<li><a href="#reflectionpropertyconstruct">ReflectionProperty::__construct - &#x521D;&#x59CB;&#x5316; ReflectionProperty &#x7C7B;</a></li>
<li><a href="#reflectionpropertygetdeclaringclass">ReflectionProperty::getDeclaringClass - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x58F0;&#x660E;&#x6240;&#x5728;&#x7684;&#x7C7B;</a></li>
<li><a href="#reflectionpropertygetdoccomment">ReflectionProperty::getDocComment - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7C7B;&#x5C5E;&#x6027;&#x7684;&#x6587;&#x6863;&#x6CE8;&#x91CA;</a></li>
<li><a href="#reflectionpropertygetmodifiers">ReflectionProperty::getModifiers - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7C7B;&#x5C5E;&#x6027;&#x7684;&#x4FEE;&#x9970;&#x7B26;</a></li>
<li><a href="#reflectionpropertygetname">ReflectionProperty::getName - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7C7B;&#x5C5E;&#x6027;&#x7684;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectionpropertygettype">ReflectionProperty::getType - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7C7B;&#x5C5E;&#x6027;&#x7684;&#x7C7B;&#x578B;</a></li>
<li><a href="#reflectionpropertygetvalue">ReflectionProperty::getValue - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7C7B;&#x5C5E;&#x6027;&#x7684;&#x503C;</a></li>
<li><a href="#reflectionpropertyhastype">ReflectionProperty::hasType - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x662F;&#x5426;&#x5B58;&#x5728;&#x7C7B;&#x578B;&#x58F0;&#x660E;</a></li>
<li><a href="#reflectionpropertyisdefault">ReflectionProperty::isDefault - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x662F;&#x5426;&#x662F;&#x9ED8;&#x8BA4;&#x5C5E;&#x6027;</a></li>
<li><a href="#reflectionpropertyisinitialized">ReflectionProperty::isInitialized - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x662F;&#x5426;&#x5DF2;&#x521D;&#x59CB;&#x5316;</a></li>
<li><a href="#reflectionpropertyisprivate">ReflectionProperty::isPrivate - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; private</a></li>
<li><a href="#reflectionpropertyisprotected">ReflectionProperty::isProtected - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; protected</a></li>
<li><a href="#reflectionpropertyispublic">ReflectionProperty::isPublic - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; public</a></li>
<li><a href="#reflectionpropertyisstatic">ReflectionProperty::isStatic - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x662F;&#x5426;&#x58F0;&#x660E;&#x4E3A; static</a></li>
<li><a href="#reflectionpropertysetaccessible">ReflectionProperty::setAccessible - &#x8BBE;&#x7F6E;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x8BBF;&#x95EE;</a></li>
<li><a href="#reflectionpropertysetvalue">ReflectionProperty::setValue - &#x8BBE;&#x7F6E;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5C5E;&#x6027;&#x7684;&#x503C;</a></li>
<li><a href="#reflectionpropertytostring">ReflectionProperty::__toString - &#x8FD4;&#x56DE; ReflectionProperty &#x5BF9;&#x8C61;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8868;&#x793A;&#x5F62;&#x5F0F;</a></li>
</ul>
</li>
<li><a href="#ReflectionType">ReflectionType</a><ul>
<li><a href="#reflectiontypeallowsnull">ReflectionType::allowsNull - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x578B;&#x662F;&#x5426;&#x5141;&#x8BB8;&#x4E3A;&#x7A7A;</a></li>
<li><a href="#reflectiontypeisbuiltin">ReflectionType::isBuiltin - &#x68C0;&#x67E5;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x578B;&#x662F;&#x5426;&#x662F;&#x5185;&#x7F6E;&#x7C7B;&#x578B;</a></li>
</ul>
</li>
<li><a href="#reflectiongenerator">ReflectionGenerator</a><ul>
<li><a href="#reflectiongeneratorconstruct">ReflectionGenerator::__construct - &#x521D;&#x59CB;&#x5316; ReflectionGenerator &#x7C7B;</a></li>
<li><a href="#reflectiongeneratorgetexecutingfile">ReflectionGenerator::getExecutingFile - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x751F;&#x6210;&#x5668;&#x6240;&#x5728;&#x7684;&#x6587;&#x4EF6;&#x540D;</a></li>
<li><a href="#reflectiongeneratorgetexecutinggenerator">ReflectionGenerator::getExecutingGenerator - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x751F;&#x6210;&#x5668;&#x5BF9;&#x8C61;</a></li>
<li><a href="#reflectiongeneratorgetexecutingline">ReflectionGenerator::getExecutingLine - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x751F;&#x6210;&#x5668;&#x6240;&#x5728;&#x7684;&#x884C;&#x53F7;</a></li>
<li><a href="#reflectiongeneratorgetfunction">ReflectionGenerator::getFunction - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x751F;&#x6210;&#x5668;&#x7684;&#x51FD;&#x6570;&#x540D;&#x79F0;</a></li>
<li><a href="#reflectiongeneratorgetthis">ReflectionGenerator::getThis - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x751F;&#x6210;&#x5668;&#x7684; $this &#x7684;&#x503C;</a></li>
<li><a href="#reflectiongeneratorgettrace">ReflectionGenerator::getTrace - &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x751F;&#x6210;&#x5668;&#x7684;&#x5806;&#x6808;&#x8DDF;&#x8E2A;&#x4FE1;&#x606F;</a></li>
</ul>
</li>
</ul>
<h2 id="reflection">Reflection</h2>
<h3 id="reflectiongetmodifiernames">Reflection::getModifierNames</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Public method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">final</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token keyword">public</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Protected method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">protected</span> <span class="token keyword">static</span> <span class="token keyword">function</span> <span class="token keyword">protected</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Private method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">function</span> <span class="token keyword">private</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span>Reflection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">getModifierNames</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;public&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>    <span class="token comment">// array(2) { [0]=&gt; string(5) &quot;final&quot; [1]=&gt; string(6) &quot;public&quot; }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span>Reflection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">getModifierNames</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;protected&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(2) { [0]=&gt; string(9) &quot;protected&quot; [1]=&gt; string(6) &quot;static&quot; }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span>Reflection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">getModifierNames</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;private&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>   <span class="token comment">// array(1) { [0]=&gt; string(7) &quot;private&quot; }</span>
</code></pre>
<h2 id="reflectionclass">ReflectionClass</h2>
<h3 id="reflectionclassconstruct">ReflectionClass::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>     <span class="token comment">// object(ReflectionClass)#1 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionClass)#1 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetconstant">ReflectionClass::getConstant</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;constant&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
</code></pre>
<h3 id="reflectionclassgetconstants">ReflectionClass::getConstants</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getConstants</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(1) { [&quot;CONSTANT&quot;]=&gt; string(3) &quot;foo&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetconstructor">ReflectionClass::getConstructor</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constructor.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">__construct</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getConstructor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionMethod)#2 (2) { [&quot;name&quot;]=&gt; string(11) &quot;__construct&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetdefaultproperties">ReflectionClass::getDefaultProperties</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">protected</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string|null
     */</span>
    <span class="token keyword">private</span> <span class="token operator">?</span>string <span class="token variable">$baz</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> string <span class="token variable">$qux</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;qux&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDefaultProperties</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(3) { [&quot;qux&quot;]=&gt; string(3) &quot;qux&quot; [&quot;foo&quot;]=&gt; string(3) &quot;foo&quot; [&quot;bar&quot;]=&gt; string(3) &quot;bar&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetdoccomment">ReflectionClass::getDocComment</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test class.
 */</span>
<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDocComment</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// string(29) &quot;/**</span>
<span class="token comment">//  * Just a test class.</span>
<span class="token comment">//  */&quot;</span>
</code></pre>
<h3 id="reflectionclassgetendline">ReflectionClass::getEndLine</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getEndLine</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(6)</span>
</code></pre>
<h3 id="reflectionclassgetextension">ReflectionClass::getExtension</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;ReflectionClass&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getExtension</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionExtension)#2 (1) { [&quot;name&quot;]=&gt; string(10) &quot;Reflection&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetextensionname">ReflectionClass::getExtensionName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;ReflectionClass&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getExtensionName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(10) &quot;Reflection&quot;</span>
</code></pre>
<h3 id="reflectionclassgetfilename">ReflectionClass::getFileName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getFileName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionclassgetinterfacenames">ReflectionClass::getInterfaceNames</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">interface</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">interface</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Baz</span> <span class="token keyword">implements</span> <span class="token class-name">Foo</span><span class="token punctuation">,</span> Bar
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getInterfaceNames</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(2) { [0]=&gt; string(3) &quot;Foo&quot; [1]=&gt; string(3) &quot;Bar&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetinterfaces">ReflectionClass::getInterfaces</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">interface</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">interface</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Baz</span> <span class="token keyword">implements</span> <span class="token class-name">Foo</span><span class="token punctuation">,</span> Bar
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getInterfaces</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(2) { [&quot;Foo&quot;]=&gt; object(ReflectionClass)#2 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; } [&quot;Bar&quot;]=&gt; object(ReflectionClass)#3 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Bar&quot; } }</span>
</code></pre>
<h3 id="reflectionclassgetmethod">ReflectionClass::getMethod</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionMethod)#2 (2) { [&quot;name&quot;]=&gt; string(6) &quot;method&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetmethods">ReflectionClass::getMethods</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getMethods</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(1) { [0]=&gt; object(ReflectionMethod)#2 (2) { [&quot;name&quot;]=&gt; string(6) &quot;method&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; } }</span>
</code></pre>
<h3 id="reflectionclassgetmodifiers">ReflectionClass::getModifiers</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(0)</span>
</code></pre>
<h3 id="reflectionclassgetname">ReflectionClass::getName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">namespace</span> <span class="token package">Foo</span><span class="token punctuation">;</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;stdClass&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(8) &quot;stdClass&quot;</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionClass</span><span class="token punctuation">(</span>Bar<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(7) &quot;Foo\Bar&quot;</span>
</code></pre>
<h3 id="reflectionclassgetnamespacename">ReflectionClass::getNamespaceName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">namespace</span> <span class="token package">Foo</span><span class="token punctuation">;</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;stdClass&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getNamespaceName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(0) &quot;&quot;</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionClass</span><span class="token punctuation">(</span>Bar<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getNamespaceName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;Foo&quot;</span>
</code></pre>
<h3 id="reflectionclassgetparentclass">ReflectionClass::getParentClass</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span> <span class="token keyword">extends</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getParentClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionClass)#2 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetproperties">ReflectionClass::getProperties</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">protected</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">private</span> string <span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;baz&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getProperties</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>                                                                 <span class="token comment">// array(3) { [0]=&gt; object(ReflectionProperty)#2 (2) { [&quot;name&quot;]=&gt; string(3) &quot;foo&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; } [1]=&gt; object(ReflectionProperty)#3 (2) { [&quot;name&quot;]=&gt; string(3) &quot;bar&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; } [2]=&gt; object(ReflectionProperty)#4 (2) { [&quot;name&quot;]=&gt; string(3) &quot;baz&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; } }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getProperties</span><span class="token punctuation">(</span>ReflectionProperty<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token constant">IS_PUBLIC</span> <span class="token operator">|</span> ReflectionProperty<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token constant">IS_PROTECTED</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(2) { [0]=&gt; object(ReflectionProperty)#4 (2) { [&quot;name&quot;]=&gt; string(3) &quot;foo&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; } [1]=&gt; object(ReflectionProperty)#3 (2) { [&quot;name&quot;]=&gt; string(3) &quot;bar&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; } }</span>
</code></pre>
<h3 id="reflectionclassgetproperty">ReflectionClass::getProperty</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">protected</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">private</span> string <span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;baz&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionProperty)#2 (2) { [&quot;name&quot;]=&gt; string(3) &quot;foo&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionProperty)#2 (2) { [&quot;name&quot;]=&gt; string(3) &quot;bar&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionProperty)#2 (2) { [&quot;name&quot;]=&gt; string(3) &quot;baz&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetreflectionconstant">ReflectionClass::getReflectionConstant</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getReflectionConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;constant&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getReflectionConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionClassConstant)#2 (2) { [&quot;name&quot;]=&gt; string(8) &quot;CONSTANT&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetreflectionconstants">ReflectionClass::getReflectionConstants</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getReflectionConstants</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(1) { [0]=&gt; object(ReflectionClassConstant)#2 (2) { [&quot;name&quot;]=&gt; string(8) &quot;CONSTANT&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; } }</span>
</code></pre>
<h3 id="reflectionclassgetshortname">ReflectionClass::getShortName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">namespace</span> <span class="token package">Foo</span><span class="token punctuation">;</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;stdClass&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getShortName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(8) &quot;stdClass&quot;</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo\Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getShortName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;Bar&quot;</span>
</code></pre>
<h3 id="reflectionclassgetstartline">ReflectionClass::getStartLine</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getStartLine</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(3)</span>
</code></pre>
<h3 id="reflectionclassgetstaticproperties">ReflectionClass::getStaticProperties</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">protected</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string|null
     */</span>
    <span class="token keyword">private</span> <span class="token operator">?</span>string <span class="token variable">$baz</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> string <span class="token variable">$qux</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;qux&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getStaticProperties</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(1) { [&quot;qux&quot;]=&gt; string(3) &quot;qux&quot; }</span>
</code></pre>
<h3 id="reflectionclassgetstaticpropertyvalue">ReflectionClass::getStaticPropertyValue</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getStaticPropertyValue</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
</code></pre>
<h3 id="reflectionclassgettraitaliases">ReflectionClass::getTraitAliases</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">trait</span> Foo
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token keyword">use</span> <span class="token package">Foo</span>
    <span class="token punctuation">{</span>
        Foo<span class="token punctuation">:</span><span class="token punctuation">:</span>method <span class="token keyword">as</span> test<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getTraitAliases</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(1) { [&quot;test&quot;]=&gt; string(11) &quot;Foo::method&quot; }</span>
</code></pre>
<h3 id="reflectionclassgettraitnames">ReflectionClass::getTraitNames</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">trait</span> Foo
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">trait</span> Bar
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Baz</span>
<span class="token punctuation">{</span>
    <span class="token keyword">use</span> <span class="token package">Foo</span><span class="token punctuation">,</span> Bar<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getTraitNames</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(2) { [0]=&gt; string(3) &quot;Foo&quot; [1]=&gt; string(3) &quot;Bar&quot; }</span>
</code></pre>
<h3 id="reflectionclassgettraits">ReflectionClass::getTraits</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">trait</span> Foo
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">trait</span> Bar
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Baz</span>
<span class="token punctuation">{</span>
    <span class="token keyword">use</span> <span class="token package">Foo</span><span class="token punctuation">,</span> Bar<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getTraits</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(2) { [&quot;Foo&quot;]=&gt; object(ReflectionClass)#2 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; } [&quot;Bar&quot;]=&gt; object(ReflectionClass)#3 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Bar&quot; } }</span>
</code></pre>
<h3 id="reflectionclasshasconstant">ReflectionClass::hasConstant</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;constant&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclasshasmethod">ReflectionClass::hasMethod</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Public method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token keyword">public</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Protected method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">protected</span> <span class="token keyword">function</span> <span class="token keyword">protected</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Private method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">function</span> <span class="token keyword">private</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;public&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>    <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;protected&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;private&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>   <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>    <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionclasshasproperty">ReflectionClass::hasProperty</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">protected</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">private</span> string <span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;baz&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>      <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>      <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>      <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionclassimplementsinterface">ReflectionClass::implementsInterface</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">interface</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">interface</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Baz</span> <span class="token keyword">implements</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">implementsInterface</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">implementsInterface</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionclassinnamespace">ReflectionClass::inNamespace</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">namespace</span> <span class="token package">Foo</span><span class="token punctuation">;</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;stdClass&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">inNamespace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionClass</span><span class="token punctuation">(</span>Bar<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">inNamespace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassisabstract">ReflectionClass::isAbstract</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">abstract</span> <span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isAbstract</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isAbstract</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassisanonymous">ReflectionClass::isAnonymous</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isAnonymous</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">class</span> <span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>
<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isAnonymous</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassiscloneable">ReflectionClass::isCloneable</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Do not clone this class.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">function</span> <span class="token function">__clone</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isCloneable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isCloneable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionclassisfinal">ReflectionClass::isFinal</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">final</span> <span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isFinal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isFinal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassisinstance">ReflectionClass::isInstance</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInstance</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">instanceof</span> <span class="token class-name">Foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span>  <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token function">is_a</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>      <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassisinstantiable">ReflectionClass::isInstantiable</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">interface</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">abstract</span> <span class="token keyword">class</span> <span class="token class-name">Baz</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">trait</span> Qux
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Quux</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Do not instantiate this class.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">function</span> <span class="token function">__construct</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInstantiable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>  <span class="token comment">// bool(true)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInstantiable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>  <span class="token comment">// bool(false)</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInstantiable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>  <span class="token comment">// bool(false)</span>

<span class="token variable">$qux</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Qux&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$qux</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInstantiable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>  <span class="token comment">// bool(false)</span>

<span class="token variable">$quux</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Quux&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$quux</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInstantiable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionclassisinterface">ReflectionClass::isInterface</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">interface</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInterface</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInterface</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassisinternal">ReflectionClass::isInternal</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;stdClass&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInternal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInternal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionclassisiterable">ReflectionClass::isIterable</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span> <span class="token keyword">implements</span> <span class="token class-name">Iterator</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Store an array.
     *
     * @var array
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">array</span> <span class="token variable">$property</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Store an array to the property.
     *
     * @param  array $array
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">__construct</span><span class="token punctuation">(</span><span class="token keyword">array</span> <span class="token variable">$array</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span> <span class="token operator">=</span> <span class="token variable">$array</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Return the current element of the specified property.
     *
     * @param  void
     * @return int
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">current</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token function">current</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Advance the internal pointer of the specified property.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token function">next</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Return the current key of the specified property.
     *
     * @param  void
     * @return int
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">key</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token function">key</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Return the validity of the current position of the specified property.
     *
     * @param  void
     * @return bool
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">valid</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> bool
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token function">current</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span> <span class="token operator">!==</span> <span class="token boolean constant">false</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Set the internal pointer of the specified property to the first element.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">rewind</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token function">reset</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Baz</span> <span class="token keyword">implements</span> <span class="token class-name">IteratorAggregate</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;baz&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$qux</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;qux&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Return an external iterator.
     *
     * @param  void
     * @return ArrayIterator
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">getIterator</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> ArrayIterator
    <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token keyword">new</span> <span class="token class-name">ArrayIterator</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Qux</span> <span class="token keyword">extends</span> <span class="token class-name">ArrayObject</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isIterable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isIterable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isIterable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$qux</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Qux&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$qux</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isIterable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassisiterateable">ReflectionClass::isIterateable</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span> <span class="token keyword">implements</span> <span class="token class-name">Iterator</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Store an array.
     *
     * @var array
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">array</span> <span class="token variable">$property</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Store an array to the property.
     *
     * @param  array $array
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">__construct</span><span class="token punctuation">(</span><span class="token keyword">array</span> <span class="token variable">$array</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span> <span class="token operator">=</span> <span class="token variable">$array</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Return the current element of the specified property.
     *
     * @param  void
     * @return int
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">current</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token function">current</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Advance the internal pointer of the specified property.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token function">next</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Return the current key of the specified property.
     *
     * @param  void
     * @return int
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">key</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token function">key</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Return the validity of the current position of the specified property.
     *
     * @param  void
     * @return bool
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">valid</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> bool
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token function">current</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span> <span class="token operator">!==</span> <span class="token boolean constant">false</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Set the internal pointer of the specified property to the first element.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">rewind</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token constant">__METHOD__</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token function">reset</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">property</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Baz</span> <span class="token keyword">implements</span> <span class="token class-name">IteratorAggregate</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;baz&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$qux</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;qux&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Return an external iterator.
     *
     * @param  void
     * @return ArrayIterator
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">getIterator</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> ArrayIterator
    <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token keyword">new</span> <span class="token class-name">ArrayIterator</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Qux</span> <span class="token keyword">extends</span> <span class="token class-name">ArrayObject</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isIterateable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isIterateable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isIterateable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$qux</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Qux&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$qux</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isIterateable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassissubclassof">ReflectionClass::isSubclassOf</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Baz</span> <span class="token keyword">extends</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Baz&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isSubclassOf</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isSubclassOf</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionclassistrait">ReflectionClass::isTrait</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token keyword">trait</span> Bar
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isTrait</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isTrait</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassisuserdefined">ReflectionClass::isUserDefined</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;stdClass&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isUserDefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isUserDefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassnewinstance">ReflectionClass::newInstance</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string|null
     */</span>
    <span class="token keyword">public</span> <span class="token operator">?</span>string <span class="token variable">$foo</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string|null
     */</span>
    <span class="token keyword">public</span> <span class="token operator">?</span>string <span class="token variable">$bar</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Initialize the value of the property.
     *
     * @param  string|null $foo
     * @param  string|null $bar
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">__construct</span><span class="token punctuation">(</span><span class="token operator">?</span>string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token constant">null</span><span class="token punctuation">,</span> <span class="token operator">?</span>string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token constant">null</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span> <span class="token operator">=</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span> <span class="token operator">=</span> <span class="token variable">$bar</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">newInstance</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">newInstance</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">newInstance</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;bar&quot;</span>
</code></pre>
<h3 id="reflectionclassnewinstanceargs">ReflectionClass::newInstanceArgs</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string|null
     */</span>
    <span class="token keyword">public</span> <span class="token operator">?</span>string <span class="token variable">$foo</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string|null
     */</span>
    <span class="token keyword">public</span> <span class="token operator">?</span>string <span class="token variable">$bar</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Initialize the value of the property.
     *
     * @param  string|null $value
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">__construct</span><span class="token punctuation">(</span><span class="token operator">?</span>string <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token variable">$value</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span> <span class="token operator">=</span> <span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$value</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token variable">$value</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token punctuation">:</span> <span class="token constant">null</span><span class="token punctuation">;</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span> <span class="token operator">=</span> <span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$value</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token variable">$value</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token punctuation">:</span> <span class="token constant">null</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">newInstanceArgs</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">newInstanceArgs</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">newInstanceArgs</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;bar&quot;</span>
</code></pre>
<h3 id="reflectionclassnewinstancewithoutconstructor">ReflectionClass::newInstanceWithoutConstructor</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Change the value of the property.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">__construct</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token keyword">list</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span><span class="token punctuation">,</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span><span class="token punctuation">)</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token single-quoted-string string">&apos;FOO&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;BAR&apos;</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">newInstanceWithoutConstructor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;bar&quot;</span>
</code></pre>
<h3 id="reflectionclasssetstaticpropertyvalue">ReflectionClass::setStaticPropertyValue</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">setStaticPropertyValue</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token variable">$foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;bar&quot;</span>
</code></pre>
<h3 id="reflectionclasstostring">ReflectionClass::__toString</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClass</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
<span class="token keyword">print</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
</code></pre>
<h2 id="reflectionclassconstant">ReflectionClassConstant</h2>
<h3 id="reflectionclassconstantconstruct">ReflectionClassConstant::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionClassConstant)#1 (2) { [&quot;name&quot;]=&gt; string(8) &quot;CONSTANT&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionclassconstantgetdeclaringclass">ReflectionClassConstant::getDeclaringClass</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDeclaringClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionClass)#2 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionclassconstantgetdoccomment">ReflectionClassConstant::getDocComment</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDocComment</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// string(66) &quot;/**</span>
<span class="token comment">//  * Just a test constant.</span>
<span class="token comment">//  *</span>
<span class="token comment">//  * @var string</span>
<span class="token comment">//  */&quot;</span>
</code></pre>
<h3 id="reflectionclassconstantgetmodifiers">ReflectionClassConstant::getModifiers</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(1)</span>
</code></pre>
<h3 id="reflectionclassconstantgetname">ReflectionClassConstant::getName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(8) &quot;CONSTANT&quot;</span>
</code></pre>
<h3 id="reflectionclassconstantgetvalue">ReflectionClassConstant::getValue</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
</code></pre>
<h3 id="reflectionclassconstantisprivate">ReflectionClassConstant::isPrivate</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isPrivate</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassconstantisprotected">ReflectionClassConstant::isProtected</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">protected</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isProtected</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassconstantispublic">ReflectionClassConstant::isPublic</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isPublic</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionclassconstanttostring">ReflectionClassConstant::__toString</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constant.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">CONSTANT</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionClassConstant</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;CONSTANT&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>  <span class="token comment">// Constant [ public string CONSTANT ] { foo }</span>
<span class="token keyword">print</span> <span class="token variable">$foo</span><span class="token punctuation">;</span> <span class="token comment">// Constant [ public string CONSTANT ] { foo }</span>
</code></pre>
<h2 id="reflectionzendextension">ReflectionZendExtension</h2>
<h3 id="reflectionzendextensionconstruct">ReflectionZendExtension::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionZendExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Zend OPcache&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionZendExtension)#1 (1) { [&quot;name&quot;]=&gt; string(12) &quot;Zend OPcache&quot; }</span>
</code></pre>
<h3 id="reflectionzendextensiongetauthor">ReflectionZendExtension::getAuthor</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionZendExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Zend OPcache&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getAuthor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(17) &quot;Zend Technologies&quot;</span>
</code></pre>
<h3 id="reflectionzendextensiongetcopyright">ReflectionZendExtension::getCopyright</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionZendExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Zend OPcache&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getCopyright</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(13) &quot;Copyright (c)&quot;</span>
</code></pre>
<h3 id="reflectionzendextensiongetname">ReflectionZendExtension::getName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionZendExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Zend OPcache&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(12) &quot;Zend OPcache&quot;</span>
</code></pre>
<h3 id="reflectionzendextensiongeturl">ReflectionZendExtension::getURL</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionZendExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Zend OPcache&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getURL</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(20) &quot;http://www.zend.com/&quot;</span>
</code></pre>
<h3 id="reflectionzendextensiongetversion">ReflectionZendExtension::getVersion</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionZendExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Zend OPcache&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getVersion</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionzendextensiontostring">ReflectionZendExtension::__toString</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionZendExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Zend OPcache&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
<span class="token keyword">print</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
</code></pre>
<h2 id="reflectionextension">ReflectionExtension</h2>
<h3 id="reflectionextensionconstruct">ReflectionExtension::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionExtension)#1 (1) { [&quot;name&quot;]=&gt; string(10) &quot;Reflection&quot; }</span>
</code></pre>
<h3 id="reflectionextensiongetclasses">ReflectionExtension::getClasses</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClasses</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionextensiongetclassnames">ReflectionExtension::getClassNames</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClassNames</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionextensiongetconstants">ReflectionExtension::getConstants</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getConstants</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionextensiongetdependencies">ReflectionExtension::getDependencies</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDependencies</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionextensiongetfunctions">ReflectionExtension::getFunctions</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getFunctions</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionextensiongetinientries">ReflectionExtension::getINIEntries</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getINIEntries</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionextensiongetname">ReflectionExtension::getName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(10) &quot;Reflection&quot;</span>
</code></pre>
<h3 id="reflectionextensiongetversion">ReflectionExtension::getVersion</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getVersion</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionextensioninfo">ReflectionExtension::info</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">info</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionextensionispersistent">ReflectionExtension::isPersistent</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isPersistent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionextensionistemporary">ReflectionExtension::isTemporary</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isTemporary</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionextensiontostring">ReflectionExtension::__toString</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionExtension</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Reflection&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
<span class="token keyword">print</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
</code></pre>
<h2 id="reflectionfunction">ReflectionFunction</h2>
<h3 id="reflectionfunctionconstruct">ReflectionFunction::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionFunction)#2 (1) { [&quot;name&quot;]=&gt; string(3) &quot;foo&quot; }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>  <span class="token comment">// object(ReflectionFunction)#2 (1) { [&quot;name&quot;]=&gt; string(9) &quot;{closure}&quot; }</span>
</code></pre>
<h3 id="reflectionfunctiongetclosure">ReflectionFunction::getClosure</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> string
<span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClosure</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
</code></pre>
<h3 id="reflectionfunctioninvoke">ReflectionFunction::invoke</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Calculate the sum of two integers.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>int <span class="token variable">$a</span><span class="token punctuation">,</span> int <span class="token variable">$b</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
<span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token variable">$a</span> <span class="token operator">+</span> <span class="token variable">$b</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">invoke</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(5)</span>
</code></pre>
<h3 id="reflectionfunctioninvokeargs">ReflectionFunction::invokeArgs</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Calculate the sum of all integers.
 *
 * @param  int $number
 * @return int
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>int <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token variable">$number</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
<span class="token punctuation">{</span>
    <span class="token variable">$sum</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
    <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$number</span> <span class="token keyword">as</span> <span class="token variable">$value</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token variable">$sum</span> <span class="token operator">+</span><span class="token operator">=</span> <span class="token variable">$value</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    <span class="token keyword">return</span> <span class="token variable">$sum</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">invokeArgs</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(6)</span>
</code></pre>
<h3 id="reflectionfunctionisdisabled">ReflectionFunction::isDisabled</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isDisabled</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionfunctiontostring">ReflectionFunction::__toString</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
<span class="token keyword">print</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
</code></pre>
<h2 id="reflectionfunctionabstract">ReflectionFunctionAbstract</h2>
<h3 id="reflectionfunctionabstractgetclosurescopeclass">ReflectionFunctionAbstract::getClosureScopeClass</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClosureScopeClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetclosurethis">ReflectionFunctionAbstract::getClosureThis</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClosureThis</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetdoccomment">ReflectionFunctionAbstract::getDocComment</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDocComment</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// string(67) &quot;/**</span>
<span class="token comment">//  * Just a test function.</span>
<span class="token comment">//  *</span>
<span class="token comment">//  * @param  void</span>
<span class="token comment">//  * @return void</span>
<span class="token comment">//  */&quot;</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetendline">ReflectionFunctionAbstract::getEndLine</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getEndLine</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(12)</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetextension">ReflectionFunctionAbstract::getExtension</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getExtension</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;mb_strlen&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getExtension</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionExtension)#1 (1) { [&quot;name&quot;]=&gt; string(8) &quot;mbstring&quot; }</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetextensionname">ReflectionFunctionAbstract::getExtensionName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getExtensionName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;mb_strlen&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getExtensionName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(8) &quot;mbstring&quot;</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetfilename">ReflectionFunctionAbstract::getFileName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getFileName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetname">ReflectionFunctionAbstract::getName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">namespace</span> <span class="token package">Foo</span><span class="token punctuation">;</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;var_dump&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(8) &quot;var_dump&quot;</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo\bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(7) &quot;Foo\bar&quot;</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetnamespacename">ReflectionFunctionAbstract::getNamespaceName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">namespace</span> <span class="token package">Foo</span><span class="token punctuation">;</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;var_dump&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getNamespaceName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(0) &quot;&quot;</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo\bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getNamespaceName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;Foo&quot;</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetnumberofparameters">ReflectionFunctionAbstract::getNumberOfParameters</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getNumberOfParameters</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(0)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;var_dump&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getNumberOfParameters</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(1)</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetnumberofrequiredparameters">ReflectionFunctionAbstract::getNumberOfRequiredParameters</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return string
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">:</span> string
<span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token variable">$string</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getNumberOfRequiredParameters</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(0)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;var_dump&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getNumberOfRequiredParameters</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(1)</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetparameters">ReflectionFunctionAbstract::getParameters</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Calculate the sum of two integers.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span>int <span class="token variable">$a</span><span class="token punctuation">,</span> int <span class="token variable">$b</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
<span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token variable">$a</span> <span class="token operator">+</span> <span class="token variable">$b</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getParameters</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(0) { }</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getParameters</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(2) { [0]=&gt; object(ReflectionParameter)#3 (1) { [&quot;name&quot;]=&gt; string(1) &quot;a&quot; } [1]=&gt; object(ReflectionParameter)#4 (1) { [&quot;name&quot;]=&gt; string(1) &quot;b&quot; } }</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetreturntype">ReflectionFunctionAbstract::getReturnType</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return string
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> string
<span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getReturnType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getReturnType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionNamedType)#3 (0) { }</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetshortname">ReflectionFunctionAbstract::getShortName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">namespace</span> <span class="token package">Foo</span><span class="token punctuation">;</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;var_dump&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getShortName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(8) &quot;var_dump&quot;</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo\bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getShortName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;bar&quot;</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetstartline">ReflectionFunctionAbstract::getStartLine</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getStartLine</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(9)</span>
</code></pre>
<h3 id="reflectionfunctionabstractgetstaticvariables">ReflectionFunctionAbstract::getStaticVariables</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">static</span> <span class="token variable">$a</span> <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>
    <span class="token keyword">static</span> <span class="token variable">$b</span> <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getStaticVariables</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// array(2) { [&quot;a&quot;]=&gt; int(2) [&quot;b&quot;]=&gt; int(3) }</span>
</code></pre>
<h3 id="reflectionfunctionabstracthasreturntype">ReflectionFunctionAbstract::hasReturnType</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return string
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> string
<span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasReturnType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasReturnType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionfunctionabstractinnamespace">ReflectionFunctionAbstract::inNamespace</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">namespace</span> <span class="token package">Foo</span><span class="token punctuation">;</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;var_dump&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">inNamespace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name"><span class="token punctuation">\</span>ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo\bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">inNamespace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionfunctionabstractisclosure">ReflectionFunctionAbstract::isClosure</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isClosure</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isClosure</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionfunctionabstractisdeprecated">ReflectionFunctionAbstract::isDeprecated</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isDeprecated</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionfunctionabstractisgenerator">ReflectionFunctionAbstract::isGenerator</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Yielding test value.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">yield</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isGenerator</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isGenerator</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionfunctionabstractisinternal">ReflectionFunctionAbstract::isInternal</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInternal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;var_dump&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInternal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionfunctionabstractisuserdefined">ReflectionFunctionAbstract::isUserDefined</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isUserDefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;var_dump&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isUserDefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionfunctionabstractisvariadic">ReflectionFunctionAbstract::isVariadic</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isVariadic</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionfunctionabstractreturnsreference">ReflectionFunctionAbstract::returnsReference</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Return a reference.
 *
 * @param  void
 * @return int
 */</span>
<span class="token keyword">function</span> <span class="token operator">&amp;</span><span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
<span class="token punctuation">{</span>
    <span class="token keyword">static</span> <span class="token variable">$a</span> <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token variable">$a</span><span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">returnsReference</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionFunction</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">returnsReference</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h2 id="reflectionmethod">ReflectionMethod</h2>
<h3 id="reflectionmethodconstruct">ReflectionMethod::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo::method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectionmethodgetclosure">ReflectionMethod::getClosure</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Public method.
     *
     * @param  void
     * @return string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token keyword">public</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> string
    <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token single-quoted-string string">&apos;public&apos;</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Protected method.
     *
     * @param  void
     * @return string
     */</span>
    <span class="token keyword">protected</span> <span class="token keyword">function</span> <span class="token keyword">protected</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> string
    <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token single-quoted-string string">&apos;protected&apos;</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Private method.
     *
     * @param  void
     * @return string
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">function</span> <span class="token keyword">private</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> string
    <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token single-quoted-string string">&apos;private&apos;</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;public&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClosure</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(6) &quot;public&quot;</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;protected&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClosure</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(9) &quot;protected&quot;</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;private&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClosure</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(7) &quot;private&quot;</span>
</code></pre>
<h3 id="reflectionmethodgetdeclaringclass">ReflectionMethod::getDeclaringClass</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDeclaringClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionClass)#2 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionmethodgetmodifiers">ReflectionMethod::getModifiers</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Public method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">final</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token keyword">public</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Protected method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">protected</span> <span class="token keyword">static</span> <span class="token keyword">function</span> <span class="token keyword">protected</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Private method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">function</span> <span class="token keyword">private</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;public&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(33)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;protected&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(18)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;private&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(4)</span>
</code></pre>
<h3 id="reflectionmethodgetprototype">ReflectionMethod::getPrototype</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Bar</span> <span class="token keyword">extends</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Override the parent method.
     *
     * @param  void
     * @return string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> string
    <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getPrototype</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// PHP Fatal error:  Uncaught ReflectionException: Method Foo::method does not have a prototype.</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getPrototype</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionMethod)#3 (2) { [&quot;name&quot;]=&gt; string(6) &quot;method&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionmethodinvoke">ReflectionMethod::invoke</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Calculate the sum of two integers.
     *
     * @param  int    $a
     * @param  int    $b
     * @return int
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span>int <span class="token variable">$a</span><span class="token punctuation">,</span> int <span class="token variable">$b</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
    <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token variable">$a</span> <span class="token operator">+</span> <span class="token variable">$b</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">invoke</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(5)</span>
</code></pre>
<h3 id="reflectionmethodinvokeargs">ReflectionMethod::invokeArgs</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Calculate the sum of all integers.
     *
     * @param  array  $number
     * @return int
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token keyword">array</span> <span class="token variable">$number</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
    <span class="token punctuation">{</span>
        <span class="token variable">$sum</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
        <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$number</span> <span class="token keyword">as</span> <span class="token variable">$value</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$sum</span> <span class="token operator">+</span><span class="token operator">=</span> <span class="token variable">$value</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        <span class="token keyword">return</span> <span class="token variable">$sum</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">invoke</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(6)</span>
</code></pre>
<h3 id="reflectionmethodisabstract">ReflectionMethod::isAbstract</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">abstract</span> <span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just an abstract method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">abstract</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isAbstract</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionmethodisconstructor">ReflectionMethod::isConstructor</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test constructor.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">__construct</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;__construct&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isConstructor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isConstructor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionmethodisdestructor">ReflectionMethod::isDestructor</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test destructor.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">__destruct</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;__destruct&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isDestructor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isDestructor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionmethodisfinal">ReflectionMethod::isFinal</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">final</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isFinal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionmethodisprivate">ReflectionMethod::isPrivate</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isPrivate</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionmethodisprotected">ReflectionMethod::isProtected</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">protected</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isProtected</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionmethodispublic">ReflectionMethod::isPublic</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isPublic</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionmethodisstatic">ReflectionMethod::isStatic</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isStatic</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionmethodsetaccessible">ReflectionMethod::setAccessible</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Calculate the sum of two integers.
     *
     * @param  int    $a
     * @param  int    $b
     * @return int
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span>int <span class="token variable">$a</span><span class="token punctuation">,</span> int <span class="token variable">$b</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
    <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token variable">$a</span> <span class="token operator">+</span> <span class="token variable">$b</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">setAccessible</span><span class="token punctuation">(</span><span class="token boolean constant">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">invoke</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(5)</span>
</code></pre>
<h3 id="reflectionmethodtostring">ReflectionMethod::__toString</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionMethod</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
<span class="token keyword">print</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>
</code></pre>
<h2 id="reflectionobject">ReflectionObject</h2>
<h3 id="reflectionobjectconstruct">ReflectionObject::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionObject</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionObject)#1 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h2 id="reflectionparameter">ReflectionParameter</h2>
<h3 id="reflectionparameterconstruct">ReflectionParameter::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Calculate the sum of two integers.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>int <span class="token variable">$a</span><span class="token punctuation">,</span> int <span class="token variable">$b</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
<span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token variable">$a</span> <span class="token operator">+</span> <span class="token variable">$b</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;a&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionParameter)#1 (1) { [&quot;name&quot;]=&gt; string(1) &quot;a&quot; }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>   <span class="token comment">// object(ReflectionParameter)#1 (1) { [&quot;name&quot;]=&gt; string(1) &quot;a&quot; }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;b&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionParameter)#1 (1) { [&quot;name&quot;]=&gt; string(1) &quot;b&quot; }</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>   <span class="token comment">// object(ReflectionParameter)#1 (1) { [&quot;name&quot;]=&gt; string(1) &quot;b&quot; }</span>
</code></pre>
<h3 id="reflectionparameterallowsnull">ReflectionParameter::allowsNull</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string|null $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token operator">?</span>string <span class="token variable">$string</span> <span class="token operator">=</span> <span class="token constant">null</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">allowsNull</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">allowsNull</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionparametercanbepassedbyvalue">ReflectionParameter::canBePassedByValue</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string &amp;$string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span>string <span class="token operator">&amp;</span><span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">canBePassedByValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">canBePassedByValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionparametergetclass">ReflectionParameter::getClass</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  Exception $exception
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span>Exception <span class="token variable">$exception</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// NULL</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;exception&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionClass)#3 (1) { [&quot;name&quot;]=&gt; string(9) &quot;Exception&quot; }</span>
</code></pre>
<h3 id="reflectionparametergetdeclaringclass">ReflectionParameter::getDeclaringClass</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test method.
     *
     * @param  string $string
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token comment">//</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;method&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDeclaringClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionClass)#2 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionparametergetdeclaringfunction">ReflectionParameter::getDeclaringFunction</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDeclaringFunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionFunction)#2 (1) { [&quot;name&quot;]=&gt; string(3) &quot;foo&quot; }</span>
</code></pre>
<h3 id="reflectionparametergetdefaultvalue">ReflectionParameter::getDefaultValue</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span>string <span class="token variable">$string</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDefaultValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// PHP Fatal error:  Uncaught ReflectionException: Internal error: Failed to retrieve the default value.</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDefaultValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;bar&quot;</span>
</code></pre>
<h3 id="reflectionparametergetdefaultvalueconstantname">ReflectionParameter::getDefaultValueConstantName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  int    $number
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>int <span class="token variable">$number</span> <span class="token operator">=</span> <span class="token constant">PHP_INI_MIN</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;number&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDefaultValueConstantName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(11) &quot;PHP_INI_MIN&quot;</span>
</code></pre>
<h3 id="reflectionparametergetname">ReflectionParameter::getName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(6) &quot;string&quot;</span>
</code></pre>
<h3 id="reflectionparametergetposition">ReflectionParameter::getPosition</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Calculate the sum of two integers.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>int <span class="token variable">$a</span><span class="token punctuation">,</span> int <span class="token variable">$b</span><span class="token punctuation">)</span><span class="token punctuation">:</span> int
<span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token variable">$a</span> <span class="token operator">+</span> <span class="token variable">$b</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;a&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getPosition</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(0)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;b&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getPosition</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(1)</span>
</code></pre>
<h3 id="reflectionparametergettype">ReflectionParameter::getType</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  int    $number
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>int <span class="token variable">$number</span><span class="token punctuation">,</span> string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;number&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionNamedType)#2 (0) { }</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionNamedType)#1 (0) { }</span>
</code></pre>
<h3 id="reflectionparameterhastype">ReflectionParameter::hasType</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionparameterisarray">ReflectionParameter::isArray</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  array  $array
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token keyword">array</span> <span class="token variable">$array</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;array&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionparameteriscallable">ReflectionParameter::isCallable</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;array_map&apos;</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isCallable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionparameterisdefaultvalueavailable">ReflectionParameter::isDefaultValueAvailable</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span>string <span class="token variable">$string</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isDefaultValueAvailable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isDefaultValueAvailable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionparameterisdefaultvalueconstant">ReflectionParameter::isDefaultValueConstant</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  int    $number
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>int <span class="token variable">$number</span> <span class="token operator">=</span> <span class="token constant">PHP_INI_MIN</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;number&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isDefaultValueConstant</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionparameterisoptional">ReflectionParameter::isOptional</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span>string <span class="token variable">$string</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isOptional</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isOptional</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionparameterispassedbyreference">ReflectionParameter::isPassedByReference</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string &amp;$string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span>string <span class="token operator">&amp;</span><span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isPassedByReference</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isPassedByReference</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionparameterisvariadic">ReflectionParameter::isVariadic</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isVariadic</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionparametertostring">ReflectionParameter::__toString</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>  <span class="token comment">// Parameter #0 [ string $string ]</span>
<span class="token keyword">print</span> <span class="token variable">$foo</span><span class="token punctuation">;</span> <span class="token comment">// Parameter #0 [ string $string ]</span>
</code></pre>
<h2 id="reflectionproperty">ReflectionProperty</h2>
<h3 id="reflectionpropertyconstruct">ReflectionProperty::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionProperty)#1 (2) { [&quot;name&quot;]=&gt; string(8) &quot;property&quot; [&quot;class&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionpropertygetdeclaringclass">ReflectionProperty::getDeclaringClass</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDeclaringClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionClass)#2 (1) { [&quot;name&quot;]=&gt; string(3) &quot;Foo&quot; }</span>
</code></pre>
<h3 id="reflectionpropertygetdoccomment">ReflectionProperty::getDocComment</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getDocComment</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// string(66) &quot;/**</span>
<span class="token comment">//  * Just a test property.</span>
<span class="token comment">//  *</span>
<span class="token comment">//  * @var string</span>
<span class="token comment">//  */&quot;</span>
</code></pre>
<h3 id="reflectionpropertygetmodifiers">ReflectionProperty::getModifiers</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Public property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> string <span class="token variable">$public</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;public&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Protected property.
     *
     * @var string
     */</span>
    <span class="token keyword">protected</span> string <span class="token variable">$protected</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;protected&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Private property.
     *
     * @var string
     */</span>
    <span class="token keyword">private</span> string <span class="token variable">$private</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;private&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;public&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(17)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;protected&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(2)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;private&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(4)</span>
</code></pre>
<h3 id="reflectionpropertygetname">ReflectionProperty::getName</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(8) &quot;property&quot;</span>
</code></pre>
<h3 id="reflectionpropertygettype">ReflectionProperty::getType</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionNamedType)#2 (0) { }</span>
</code></pre>
<h3 id="reflectionpropertygetvalue">ReflectionProperty::getValue</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getValue</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
</code></pre>
<h3 id="reflectionpropertyhastype">ReflectionProperty::hasType</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">hasType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectionpropertyisdefault">ReflectionProperty::isDefault</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string|null
     */</span>
    <span class="token keyword">public</span> <span class="token operator">?</span>string <span class="token variable">$foo</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isDefault</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionpropertyisinitialized">ReflectionProperty::isInitialized</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string|null
     */</span>
    <span class="token keyword">public</span> <span class="token operator">?</span>string <span class="token variable">$foo</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInitialized</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isInitialized</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionpropertyisprivate">ReflectionProperty::isPrivate</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">private</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isPrivate</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionpropertyisprotected">ReflectionProperty::isProtected</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">protected</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isProtected</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionpropertyispublic">ReflectionProperty::isPublic</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isPublic</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionpropertyisstatic">ReflectionProperty::isStatic</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isStatic</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>
</code></pre>
<h3 id="reflectionpropertysetaccessible">ReflectionProperty::setAccessible</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">private</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">setAccessible</span><span class="token punctuation">(</span><span class="token boolean constant">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getValue</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
</code></pre>
<h3 id="reflectionpropertysetvalue">ReflectionProperty::setValue</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> string <span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$reflection</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$reflection</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">setValue</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;bar&quot;</span>

<span class="token variable">$reflection</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$reflection</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">setValue</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span>Foo<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token variable">$bar</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// string(3) &quot;foo&quot;</span>
</code></pre>
<h3 id="reflectionpropertytostring">ReflectionProperty::__toString</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Just a test property.
     *
     * @var string
     */</span>
    <span class="token keyword">public</span> string <span class="token variable">$property</span> <span class="token operator">=</span> <span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionProperty</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;Foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;property&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token variable">$foo</span><span class="token punctuation">;</span>  <span class="token comment">// Property [ &lt;default&gt; public $property ]</span>
<span class="token keyword">print</span> <span class="token variable">$foo</span><span class="token punctuation">;</span> <span class="token comment">// Property [ &lt;default&gt; public $property ]</span>
</code></pre>
<h2 id="reflectiontype">ReflectionType</h2>
<h3 id="reflectiontypeallowsnull">ReflectionType::allowsNull</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">allowsNull</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>            <span class="token comment">// bool(false)</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">allowsNull</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h3 id="reflectiontypeisbuiltin">ReflectionType::isBuiltin</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  string $string
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span>string <span class="token variable">$string</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Just a test function.
 *
 * @param  Exception $exception
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span>Exception <span class="token variable">$exception</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token comment">//</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;foo&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;string&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isBuiltin</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(true)</span>

<span class="token variable">$bar</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionParameter</span><span class="token punctuation">(</span><span class="token single-quoted-string string">&apos;bar&apos;</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">&apos;exception&apos;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$bar</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">isBuiltin</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// bool(false)</span>
</code></pre>
<h2 id="reflectiongenerator">ReflectionGenerator</h2>
<h3 id="reflectiongeneratorconstruct">ReflectionGenerator::__construct</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Yielding test value.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">yield</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">ReflectionGenerator</span><span class="token punctuation">(</span><span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionGenerator)#1 (0) { }</span>
</code></pre>
<h3 id="reflectiongeneratorgetexecutingfile">ReflectionGenerator::getExecutingFile</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Yielding test value.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">yield</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionGenerator</span><span class="token punctuation">(</span><span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getExecutingFile</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="reflectiongeneratorgetexecutinggenerator">ReflectionGenerator::getExecutingGenerator</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Yielding test value.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">yield</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionGenerator</span><span class="token punctuation">(</span><span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getExecutingGenerator</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(Generator)#2 (0) { }</span>

<span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$foo</span> <span class="token keyword">as</span> <span class="token variable">$value</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$value</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">// int(1)</span>
</code></pre>
<h3 id="reflectiongeneratorgetexecutingline">ReflectionGenerator::getExecutingLine</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Yielding test value.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">yield</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionGenerator</span><span class="token punctuation">(</span><span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getExecutingLine</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// int(11)</span>
</code></pre>
<h3 id="reflectiongeneratorgetfunction">ReflectionGenerator::getFunction</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Yielding test value.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">yield</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionGenerator</span><span class="token punctuation">(</span><span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getFunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(ReflectionFunction)#3 (1) { [&quot;name&quot;]=&gt; string(3) &quot;foo&quot; }</span>
</code></pre>
<h3 id="reflectiongeneratorgetthis">ReflectionGenerator::getThis</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token keyword">class</span> <span class="token class-name">Foo</span>
<span class="token punctuation">{</span>
    <span class="token comment">/**
     * Yielding test value.
     *
     * @param  void
     * @return void
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token punctuation">{</span>
        <span class="token keyword">yield</span> <span class="token number">1</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$foo</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionGenerator</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">method</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getThis</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// object(Foo)#2 (0) { }</span>
</code></pre>
<h3 id="reflectiongeneratorgettrace">ReflectionGenerator::getTrace</h3>
<pre class="language-"><code class="lang-php"><span class="token delimiter important">&lt;?php</span>

<span class="token comment">/**
 * Yielding test value.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">yield</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Yielding test value.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">yield</span> from <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token comment">/**
 * Yielding test value.
 *
 * @param  void
 * @return void
 */</span>
<span class="token keyword">function</span> <span class="token function">baz</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
    <span class="token keyword">yield</span> from <span class="token function">bar</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token function">baz</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">valid</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$baz</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReflectionGenerator</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$baz</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">getTrace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>

                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="函数处理.html" class="navigation navigation-prev " aria-label="Previous page: 函数处理">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="变量.html" class="navigation navigation-next " aria-label="Next page: 变量">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"反射","level":"1.1.2.15.6","depth":4,"next":{"title":"变量","level":"1.1.2.15.7","depth":4,"path":"docs/函数参考/变量与类型相关扩展/变量.md","ref":"docs/函数参考/变量与类型相关扩展/变量.md","articles":[]},"previous":{"title":"函数处理","level":"1.1.2.15.5","depth":4,"path":"docs/函数参考/变量与类型相关扩展/函数处理.md","ref":"docs/函数参考/变量与类型相关扩展/函数处理.md","articles":[]},"dir":"ltr"},"config":{"plugins":["back-to-top-button","chapter-fold","favicon","hide-element","lightbox","-highlight","prism","-lunr","-search","search-pro","splitter","livereload"],"root":"","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"chapter-fold":{},"prism":{"css":["prismjs/themes/prism-okaidia.css"]},"livereload":{},"splitter":{},"search-pro":{},"hide-element":{"elements":[".gitbook-link"]},"fontsettings":{"theme":"white","family":"sans","size":2},"favicon":{"shortcut":"favicon.ico","bookmark":"favicon.ico","appleTouch":"favicon.png","appleTouchMore":{"120x120":"favicon-120x120.png","180x180":"favicon-180x180.png"}},"lightbox":{"jquery":true,"sameUuid":false},"back-to-top-button":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"Kuriv Vesti","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"isbn":"","variables":{},"title":"PHP","language":"zh-hans","gitbook":">=3.0.0","description":"PHP 手册","direction":"ltr"},"file":{"path":"docs/函数参考/变量与类型相关扩展/反射.md","mtime":"2020-05-03T08:52:03.501Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-07-13T03:43:41.544Z"},"basePath":"../../..","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="../../../gitbook/gitbook.js"></script>
    <script src="../../../gitbook/theme.js"></script>
    
        
        <script src="../../../gitbook/gitbook-plugin-back-to-top-button/plugin.js"></script>
        
    
        
        <script src="../../../gitbook/gitbook-plugin-chapter-fold/chapter-fold.js"></script>
        
    
        
        <script src="../../../gitbook/gitbook-plugin-hide-element/plugin.js"></script>
        
    
        
        <script src="../../../gitbook/gitbook-plugin-lightbox/js/lightbox.min.js"></script>
        
    
        
        <script src="../../../gitbook/gitbook-plugin-search-pro/jquery.mark.min.js"></script>
        
    
        
        <script src="../../../gitbook/gitbook-plugin-search-pro/search.js"></script>
        
    
        
        <script src="../../../gitbook/gitbook-plugin-splitter/splitter.js"></script>
        
    
        
        <script src="../../../gitbook/gitbook-plugin-livereload/plugin.js"></script>
        
    
        
        <script src="../../../gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    
        
        <script src="../../../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    

    </body>
</html>