13
A
回答
9
將函數的參數壓入堆棧,然後調用該函數讀取堆棧並將這些值用作參數。
因此,只要堆棧未滿,您可以繼續添加參數,但這取決於具體情況,並且在設計時您不會知道堆棧大小。
但我真的希望這是純粹的技術討論,你不需要它IRL。 ;-)
+0
哈哈,不,不,因爲我提到這不是IRL - 純粹的技術ramblings :-) – bagwaa
11
沒有限制。您可以始終使用func_get_args()
,func_get_arg()
和func_num_args()
以避免在函數定義中寫入所有參數。
3
我真的不知道什麼是限制,但無論哪種方式,如果您創建一個函數的參數太多,您的代碼將不會很容易閱讀它。如果你想添加許多函數的參數,你可以做這樣的事情:
$option = array(
'arg_1' => 'value',
'arg_2' => 'value',
....
'arg_x' => 'value'
);
function function_name($args = "")
{
$defaults = array(
'arg_1' => 'default_value',
'arg_2' => 'default_value'
....
'arg_x' => 'default_value'
);
$arguments = array_merge($defaults, (array)$args);
extract($arguments);
echo $arg_1;
echo $arg_x;
}
4
定義一個函數是什麼,你可以創建參數的最大數目?
我不知道作爲固定數字的參數數量的具體限制。一個快速測試表明,我沒有問題來定義一個255 555參數的函數。確定函數並執行它需要一些時間。但是,它的工作。
隨着數量的增加,我遇到了可能是字符串限制的內存限制。您可能想要改進測試用例,使用緩衝區並將文件依次保存到磁盤,然後將其包含在內:
$count = 255555;
$code = 'function test(%s) {return 1;}; return test();';
$params = ltrim(implode('=0, $p', range(0, $count)), '0, =').'=0';
echo eval(sprintf($code, $params));
相關問題
- 1. 函數參數最大數量
- 2. PHP函數多個參數
- 3. postgresql函數可以帶的最大參數個數
- 4. 最大數量的Bash參數!=最大數量cp參數?
- 5. PHP - 帶最小,最大參數的intval()
- 6. PHP函數參數
- 7. PHP函數參數數組
- 8. 使用多個參數最大化函數(python)
- 9. 函數的大小參數
- 10. 作爲參數的PHP函數參數
- 11. PHP函數參數中的函數?
- 12. PHP函數作爲函數的參數
- 13. php preg_match函數第三個參數
- 14. PHP數組數最大值
- 15. Haskell函數 - 最大
- 16. Pyspark - 最大/最小參數
- 17. 傳遞參數,PHP函數
- 18. PHP - 引用函數參數
- 19. PHP函數參數my_func($ param ='')
- 20. PHP函數變量參數
- 21. php函數的onClick參數
- 22. Php肥皂函數參數
- 23. PHP多參數函數
- 24. PHP函數可變參數
- 25. PHP:函數傳遞大量的數組作爲參數
- 26. PHP:在另一個函數的參數中調用函數
- 27. 從函數中的三個參數中找出最大的奇數[Python]
- 28. 使用參數的PHP函數參考
- 29. Python中的最小/最大函數的參數數量的錯誤
- 30. 如何編寫PL/SQL函數的參數與最大函數相似
爲什麼不測試? http://stackoverflow.com/questions/8049673/php-functions-maximum-number-of-arguments/8049856#8049856 – hakre
我非常感謝他沒有,但問,而不是。你看,這樣我們也不一定都要。 SO再次爲社區服務。 –