PHP通过字符串调用函数_PHP教程

WBOY
发布: 2016-07-13 10:36:38
原创
782 人浏览过

1. call_user_func

<span>function</span> a<span>(</span><span>$b</span><span>,</span><span>$c</span><span>)</span><span>{</span>
		<span>echo</span> <span>$b</span><span>;</span>
		<span>echo</span> <span>$c</span><span>;</span>
<span>}</span>
<span>call_user_func</span><span>(</span><span>'a'</span><span>,</span> <span>"111"</span><span>,</span><span>"222"</span><span>)</span><span>;</span>
<span>call_user_func</span><span>(</span><span>'a'</span><span>,</span> <span>"333"</span><span>,</span><span>"444"</span><span>)</span><span>;</span>
 
<span>//显示 111 222 333 444</span>
<span>?></span>
 
<span>//调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:</span>
<span>class</span> a <span>{</span>
		<span>function</span> b<span>(</span><span>$c</span><span>)</span><span>{</span>
				<span>echo</span> <span>$c</span><span>;</span>
		<span>}</span>
<span>}</span>
<span>call_user_func</span><span>(</span><span>array</span><span>(</span><span>"a"</span><span>,</span> <span>"b"</span><span>)</span><span>,</span><span>"111"</span><span>)</span><span>;</span>
 
<span>//显示 111</span>
<span>?></span>
登录后复制

2. call_user_func_array

call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:

<span>function</span> a<span>(</span><span>$b</span><span>,</span> <span>$c</span><span>)</span><span>{</span>
		<span>echo</span> <span>$b</span><span>;</span>
		<span>echo</span> <span>$c</span><span>;</span>
<span>}</span>
<span>call_user_func_array</span><span>(</span><span>'a'</span><span>,</span> <span>array</span><span>(</span><span>"111"</span><span>,</span> <span>"222"</span><span>)</span><span>)</span><span>;</span>
 
<span>//显示 111 222</span>
<span>?></span>
 
<span>//call_user_func_array函数也可以调用类内部的方法的</span>
 
<span>Class</span> ClassA<span>{</span>
		<span>function</span> bc<span>(</span><span>$b</span><span>,</span> <span>$c</span><span>)</span> <span>{</span>
    		<span>$bc</span> <span>=</span> <span>$b</span> <span>+</span> <span>$c</span><span>;</span>
				<span>echo</span> <span>$bc</span><span>;</span>
		<span>}</span>
<span>}</span>
<span>call_user_func_array</span><span>(</span><span>array</span><span>(</span><span>'ClassA'</span><span>,</span><span>'bc'</span><span>)</span><span>,</span> <span>array</span><span>(</span><span>"111"</span><span>,</span> <span>"222"</span><span>)</span><span>)</span><span>;</span>
 
<span>//显示 333</span>
<span>?></span>
登录后复制

call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:

<span>function</span> a<span>(</span><span>&</span><span>$b</span><span>)</span><span>{</span>
		<span>$b</span><span>++;</span>
<span>}</span>
<span>$c</span> <span>=</span> <span>0</span><span>;</span>
<span>call_user_func</span><span>(</span><span>'a'</span><span>,</span> <span>&</span><span>$c</span><span>)</span><span>;</span>
<span>echo</span> <span>$c</span><span>;</span><span>//显示 1</span>
<span>call_user_func_array</span><span>(</span><span>'a'</span><span>,</span> <span>array</span><span>(</span><span>&</span><span>$c</span><span>)</span><span>)</span><span>;</span>
<span>echo</span> <span>$c</span><span>;</span><span>//显示 2</span>
登录后复制

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/738521.htmlTechArticle1. call_user_func function a ( $b , $c ) { echo $b ; echo $c ; } call_user_func ( 'a' , "111" , "222" ) ; call_user_func ( 'a' , "333" , "444" ) ; //显示 111 222 333 444 ? //调用...
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!