php call_user_func_array 與 函數參數的默認值

<?PHP


function test($v=2)
{
	echo $v."\r\n";
}


// 第已種調用方式
test([]);
//output

---------- php ----------
Notice: Array to string conversion in D:\phpStudy\WWW\demo\test.php
Array
PHP Notice:  Array to string conversion in D:\phpStudy\WWW\demo\test.php 

Output completed (2 sec consumed) - Normal Termination





//第二種掉調用方式.
call_user_func_array('test',[]);
// output
---------- php ----------
2


//測試結論

/**
	知識點處理 :
	1  在調用call_user_func_array的時候, 傳遞的全部的參數,都是以數組的方式進行傳遞的, 這個地方容易出現錯誤的理解, 該函數要求傳遞的是一個數組, 但, 在真實調用 test 函數的時候, 是將該array() 中的值依次傳遞給 test() 函數的, 
    因此,在第二種調用方式下, 實際是沒有傳遞任何參數的, 所以 test函數的調用過程當中使用了參數的默認值.

	2  在處理定義了默認值的函數的時候,對參數的處理問題, 若是參數是定義了默認值, 此時若是傳遞一個空數組,那麼程序該如何處理, 這種狀況就是 第一種調用方式的輸出結果, php會釋放一個通知給用戶, 同時輸出一個參數的類型.

**/

?>
相關文章
相關標籤/搜索