首先,我想說我不想在這裏開始戰爭。我知道我的談話可能會有一些強烈的意見,關於下面的話題,所以我正在尋找一個概述利弊的答案。在設計方面,有兩種方法可以傳遞參數(注意,我並不是說要在被調用的函數中獲取參數),但是在鬆散類型的語言中(我特別來自PHP的觀點) 。PHP函數設計:傳遞參數
一方面,你可以將它們作爲單獨的參數如下:
foo($var1, $var2, $var3 ...);
在另一方面,你可以在你的變量打包成一個數組,然後傳遞一個參數的功能,數組:
$bar[] = $var1;
$bar[] = $var2;
$bar[] = $var3;
...
foo($bar);
我可以看到第二個方法的好處,當你有很多的需要在一個通用的方法進行處理的變量,但是,它也隱藏哪些變量的函數需要以操作correctl年。
第一種解決方案雖然隨着變量數量的增加而迅速變爲長函數調用,但它更好地顯示了函數需要的變量,並且在函數調用中傳遞了空值時可以利用功能來分配默認值。
因此,在什麼情況下應該使用哪一種或哪種情況,以及中間的情況如何,例如,數組是關聯的,因此您可以在函數內部通過名稱獲取變量,通用的方式?對我來說,關聯數組的場景看起來非常不理想,而且只是一些開發人員使用這種方式來縮短函數調用時間,同時實際增加寫入的總體代碼量。
我想把它移到程序員SE上,因爲從PHP的角度來看,它與任何其他語言沒有什麼不同(除了PHP不允許[超載](http://en.wikipedia.org/)維基/ Method_overloading))。 – 2011-05-02 18:59:56
@Kevin:這是一個很好的編程相關問題。它應該在SO上。 – NikiC 2011-05-02 19:04:37
@nikic,它是如何更少[程序員SE](http://programmers.stackexchange.com/)。我們正在討論開發方法(來自程序員SE常見問題),而不是那麼多的算法,工具等(SO常見問題解答) – 2011-05-02 19:07:20