首頁  >  文章  >  後端開發  >  PHP通过字符串调用函数_PHP教程

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

WBOY
WBOY原創
2016-07-13 10:36:38775瀏覽

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 ? //调用...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn