1. 程式人生 > >PHP中代理函數調用的小案例

PHP中代理函數調用的小案例

num 無法 自己 src 字符 ont ads load put

簡單寫一個小例子就明白了

例:在文本框內輸入字符串並用逗號隔開,然後點擊提交會自動消除逗號拼接在一起。

技術分享圖片

像這樣

技術分享圖片

點擊提交過去返回12345

這個小例子就用到代理函數調用,先說一下這個函數名 call_user_func_array();

call_user_func_array(‘要調用的函數名’,’調用的值’);

先寫提交表單:

<form method=post action=”test.php”> 輸入一個字符串,用逗號隔開: <input type=”text” name=”str”><br /> <input type=”submit” name=”button” value=”提交”> </form>

再寫接受驗證的代碼:

<?php function content(){ $sum=func_get_args(); if(empty($sum)){ echo ‘請輸入內容!’; return; } $num=”; for($i=0;$i<count($sum);$i++){ $num.=$sum[$i]; } echo $num; } if(isset($_POST[‘button’])){ $str=$_POST[‘str’]; $array=explode(‘,’,$str); call_user_func_array(‘content’,$array); }
解釋: 1. 先判斷提交過來的內容,然後以’,’ 將字符串分割成一個數組($array) 2. 定義一個函數,獲取傳來的值並打散分成一個數組($sum),如果沒有傳內容就返回‘請輸入內容’,然後進行一個循環,將$sum數組中的幾個值打印出來並用‘.’鏈接 3. 因為函數是不能跨變量域調用的(就這麽說吧,反正就這麽理解吧,,這樣說好理解,別打我QAQ),所以要用到代理函數調用(call_user_func_args()) 4. 使用 call_user_func_array(‘content’,$array); 讓這個函數幫我們調用一下,這句代碼類似於
function content($a){ //代碼塊 } content($array);
5. 這樣就完成了一次函數的代理調用,通常在我們無法調用自己寫的函數時使用。 6. 有什麽寫的不對的地方歡迎指出,反正我又不會改~QAQ~~QAQ~

PHP中代理函數調用的小案例