⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 language.oop5.reflection.html

📁 php的帮助文档,涉及到PHP的案例和基本语法,以及实际应用内容
💻 HTML
📖 第 1 页 / 共 5 页
字号:
   <h3 class="title"><b class="classname">ReflectionParameter</b></h3>   <p class="para">    The <b class="classname">ReflectionParameter</b> class retrieves    information about a function&#039;s or method&#039;s parameters.   </p>   <div class="informalexample">    <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">ReflectionParameter&nbsp;</span><span style="color: #007700">implements&nbsp;</span><span style="color: #0000BB">Reflector<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;private&nbsp;</span><span style="color: #0000BB">__clone</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">void&nbsp;__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;</span><span style="color: #007700">function,&nbsp;</span><span style="color: #0000BB">string&nbsp;parameter</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">string&nbsp;__toString</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;</span><span style="color: #0000BB">string&nbsp;export</span><span style="color: #007700">(</span><span style="color: #0000BB">mixed&nbsp;</span><span style="color: #007700">function,&nbsp;</span><span style="color: #0000BB">mixed&nbsp;parameter</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">bool&nbsp;</span><span style="color: #007700">return)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">string&nbsp;getName</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isPassedByReference</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionClass&nbsp;getDeclaringClass</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionClass&nbsp;getClass</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isArray</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;allowsNull</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isPassedByReference</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isOptional</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isDefaultValueAvailable</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">mixed&nbsp;getDefaultValue</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">int&nbsp;getPosition</span><span style="color: #007700">()<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>    </div>   </div>   <blockquote><p><b class="note">Note</b>:          <b>getDefaultValue()</b>,     <b>isDefaultValueAvailable()</b> and     <b>isOptional()</b> were added in PHP 5.0.3,     while <b>isArray()</b> was added in PHP 5.1.0.     <b>getDeclaringFunction()</b> and     <b>getPosition()</b> were added in PHP 5.2.3.    <br />   </p></blockquote>   <p class="para">    To introspect function parameters, you will first have to create an instance    of the <b class="classname">ReflectionFunction</b> or     <b class="classname">ReflectionMethod</b> classes and then use their     <b>getParameters()</b> method to retrieve an array of parameters.   </p>   <div class="example">    <p><b>Example #3 Using the <b class="classname">ReflectionParameter</b> class</b></p>    <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">foo</span><span style="color: #007700">(</span><span style="color: #0000BB">$a</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$b</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$c</span><span style="color: #007700">)&nbsp;{&nbsp;}<br />function&nbsp;</span><span style="color: #0000BB">bar</span><span style="color: #007700">(</span><span style="color: #0000BB">Exception&nbsp;$a</span><span style="color: #007700">,&nbsp;&amp;</span><span style="color: #0000BB">$b</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$c</span><span style="color: #007700">)&nbsp;{&nbsp;}<br />function&nbsp;</span><span style="color: #0000BB">baz</span><span style="color: #007700">(</span><span style="color: #0000BB">ReflectionFunction&nbsp;$a</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$b&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$c&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">)&nbsp;{&nbsp;}<br />function&nbsp;</span><span style="color: #0000BB">abc</span><span style="color: #007700">()&nbsp;{&nbsp;}<br /><br /></span><span style="color: #FF8000">//&nbsp;Create&nbsp;an&nbsp;instance&nbsp;of&nbsp;ReflectionFunction&nbsp;with&nbsp;the<br />//&nbsp;parameter&nbsp;given&nbsp;from&nbsp;the&nbsp;command&nbsp;line.&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #0000BB">$reflect&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">ReflectionFunction</span><span style="color: #007700">(</span><span style="color: #0000BB">$argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]);<br /><br />echo&nbsp;</span><span style="color: #0000BB">$reflect</span><span style="color: #007700">;<br /><br />foreach&nbsp;(</span><span style="color: #0000BB">$reflect</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getParameters</span><span style="color: #007700">()&nbsp;as&nbsp;</span><span style="color: #0000BB">$i&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$param</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">printf</span><span style="color: #007700">(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"--&nbsp;Parameter&nbsp;#%d:&nbsp;%s&nbsp;{\n"</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"&nbsp;&nbsp;&nbsp;Class:&nbsp;%s\n"</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"&nbsp;&nbsp;&nbsp;Allows&nbsp;NULL:&nbsp;%s\n"</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"&nbsp;&nbsp;&nbsp;Passed&nbsp;to&nbsp;by&nbsp;reference:&nbsp;%s\n"</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"&nbsp;&nbsp;&nbsp;Is&nbsp;optional?:&nbsp;%s\n"</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"}\n"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$i</span><span style="color: #007700">,&nbsp;</span><span style="color: #FF8000">//&nbsp;$param-&gt;getPosition()&nbsp;can&nbsp;be&nbsp;used&nbsp;from&nbsp;PHP&nbsp;5.2.3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$param</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getName</span><span style="color: #007700">(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">var_export</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getClass</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">var_export</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">allowsNull</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">var_export</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">isPassedByReference</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$param</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">isOptional</span><span style="color: #007700">()&nbsp;?&nbsp;</span><span style="color: #DD0000">'yes'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'no'<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>    </div>   </div>  </div>  <div id="language.oop5.reflection.reflectionclass" class="sect2">   <h3 class="title"><b class="classname">ReflectionClass</b></h3>   <p class="para">    The <b class="classname">ReflectionClass</b> class lets    you reverse-engineer classes and interfaces.   </p>   <div class="informalexample">    <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">ReflectionClass&nbsp;</span><span style="color: #007700">implements&nbsp;</span><span style="color: #0000BB">Reflector<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;private&nbsp;</span><span style="color: #0000BB">__clone</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">void&nbsp;__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">string&nbsp;__toString</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;</span><span style="color: #0000BB">string&nbsp;export</span><span style="color: #007700">(</span><span style="color: #0000BB">mixed&nbsp;</span><span style="color: #007700">class,&nbsp;</span><span style="color: #0000BB">bool&nbsp;</span><span style="color: #007700">return)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">string&nbsp;getName</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isInternal</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isUserDefined</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isInstantiable</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;hasConstant</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;hasMethod</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;hasProperty</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">string&nbsp;getFileName</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">int&nbsp;getStartLine</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">int&nbsp;getEndLine</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">string&nbsp;getDocComment</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionMethod&nbsp;getConstructor</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionMethod&nbsp;getMethod</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionMethod</span><span style="color: #007700">[]&nbsp;</span><span style="color: #0000BB">getMethods</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionProperty&nbsp;getProperty</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionProperty</span><span style="color: #007700">[]&nbsp;</span><span style="color: #0000BB">getProperties</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;array&nbsp;</span><span style="color: #0000BB">getConstants</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">mixed&nbsp;getConstant</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionClass</span><span style="color: #007700">[]&nbsp;</span><span style="color: #0000BB">getInterfaces</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isInterface</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isAbstract</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isFinal</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">int&nbsp;getModifiers</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isInstance</span><span style="color: #007700">(</span><span style="color: #0000BB">stdclass&nbsp;object</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">stdclass&nbsp;newInstance</span><span style="color: #007700">(</span><span style="color: #0000BB">mixed&nbsp;args</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">stdclass&nbsp;newInstanceArgs</span><span style="color: #007700">(array&nbsp;</span><span style="color: #0000BB">args</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionClass&nbsp;getParentClass</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isSubclassOf</span><span style="color: #007700">(</span><span style="color: #0000BB">ReflectionClass&nbsp;</span><span style="color: #007700">class)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;array&nbsp;</span><span style="color: #0000BB">getStaticProperties</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">mixed&nbsp;getStaticPropertyValue</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name&nbsp;</span><span style="color: #007700">[,&nbsp;</span><span style="color: #0000BB">mixed&nbsp;</span><span style="color: #007700">default])<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">void&nbsp;setStaticPropertyValue</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">mixed&nbsp;value</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;array&nbsp;</span><span style="color: #0000BB">getDefaultProperties</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;isIterateable</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">bool&nbsp;implementsInterface</span><span style="color: #007700">(</span><span style="color: #0000BB">string&nbsp;name</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">ReflectionExtension&nbsp;getExtension</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">string&nbsp;getExtensionName</span><span style="color: #007700">()<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>    </div>   </div>   <blockquote><p><b class="note">Note</b>:     <span class="simpara">     <b>hasConstant()</b>, <b>hasMethod()</b>,     <b>hasProperty()</b>, <b>getStaticPropertyValue()</b>     and <b>setStaticPropertyValue()</b> were added in PHP 5.1.0, while     <b>newInstanceArgs()</b> was added in PHP 5.1.3.    </span>   </p></blockquote>   <p class="para">    To introspect a class, you will first have to create an instance    of the <b class="classname">ReflectionClass</b> class. You can then    call any of the above methods on this instance.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -