<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post//</link>
<title><![CDATA[PHP反射类带参数执行反射对象方法传入参数函数示例解析。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Thu, 17 Mar 2016 01:05:11 +0000</pubDate> 
<guid>https://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景:对于kohana早期框架对类里面的before after以及controller和action的函数均可以用反射类来灵活按既定顺序执行，而在执行的时候假如异常，可以通过PHP提供的异常捕获进行捕获输出，这就涉及到类变对象后其参数的传递问题了，怎么给反射类里面的函数传递多参数乃至引用参数，这个PHP也提供了对应的反射类里函数传入的方法ReflectionMethod::invokeArgs。<br/>使用代码片段如下：<br/><textarea name="code" class="php" rows="15" cols="100">
$class = new ReflectionClass(&#039;Person&#039;); // 建立 Person这个类的反射类 
$instance&nbsp;&nbsp;= $class-&gt;newInstanceArgs($args); // 相当于实例化Person 类 
public stdclass newInstance(mixed* args)//测试传入的对象是否为该类的一个实例
</textarea><br/>参考更多相关反射的文章：<br/>http://flandycheng.blog.51cto.com/855176/326021/<br/>http://www.phperz.com/article/14/0809/17371.html<br/><br/>自己研究：http://jackxiang.com/post/2090/<br/><br/>ReflectionMethod::invokeArgs<br/><br/>(PHP 5 &gt;= 5.1.0)<br/><br/>ReflectionMethod::invokeArgs — 带参数执行<br/><br/>说明<br/><br/>public mixed ReflectionMethod::invokeArgs ( object $object , array $args )<br/>使用数组给方法传送参数，并执行他。<br/>参数<br/>object<br/>调用方法的对象，如果是静态对象，设置为 null<br/>args<br/>使用 array 传送的方法参数。<br/>返回值<br/>返回方法返回值<br/>错误／异常<br/>如果 object 指定的实例无法执行方法，那么产生 ReflectionException 异常。<br/>如果方法调用失败，产生 ReflectionException<br/>范例<br/>Example #1 ReflectionMethod::invokeArgs() example<br/><br/>&lt;?php<br/>class HelloWorld &#123;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public function sayHelloTo($name) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &#039;Hello &#039; . $name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&#125;<br/><br/>$reflectionMethod = new ReflectionMethod(&#039;HelloWorld&#039;, &#039;sayHelloTo&#039;);<br/>echo $reflectionMethod-&gt;invokeArgs(new HelloWorld(), array(&#039;Mike&#039;));<br/>?&gt;<br/>以上例程会输出：<br/>Hello Mike<br/>注释<br/>Note:<br/>如果函数有参数需为引用，那么它们必须以引用方式传入。<br/>参见<br/>ReflectionMethod::invoke() - Invoke<br/>__invoke()<br/>call_user_func_array() - 调用回调函数，并把一个数组参数作为回调函数的参数<br/>来自:http://help.bitscn.com/php/reflectionmethod.invokeargs.html
]]>
</description>
</item><item>
<link>https://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] PHP反射类带参数执行反射对象方法传入参数函数示例解析。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>