2010-02-22 58 views
0

是這些功能之間的區別?爲什麼我們要分配一個空值,函數參數?就是這兩個函數之間的區別?

function prints($var = '') { 
echo $var; } 

function prin($var) { 
echo $var; } 

兩者都打印相同的結果。

如果我們爲函數參數分配一個空值會發生什麼?

回答

3

第一個函數的第一個參數爲default value。這意味着,調用該函數時參數不需要指定。

所以,你可以調用的第一個函數沒有這樣的參數:

prints(); 

,用於第一個參數的默認值。但調用第二功能,當參數需要給出:

prin('parameter'); 

如果你不使用該參數(prin()),你會得到這樣一個警告:

警告:缺少參數1 for prin(),叫...

+0

對我感到羞恥 - 當然是有區別的。 +1 – 2010-02-22 14:28:08

+0

感謝所有回帖。 :-) – Paulraj 2010-02-22 14:42:53

2

這些功能 會以相同的方式工作 會顯示同樣的效果,因爲默認$var = ''是因爲如果你不能在所有指定一個默認值。

@Gumbo正確指出的兩個函數之間的區別是,prin()不能在沒有指定$var的情況下調用,但是prints()可以。

如果您使用空參數調用該函數,則$var將僅爲空。

0

第一個對變量$ var有一個默認值。

您可能有興趣在function arguments上閱讀PHP手冊頁。

0

功能

function prints($var = '') 

接收的默認值(它是在這種情況下,空值)。

其他功能不接受它。 這意味着,你可以調用的第一個函數打印(),沒有參數,它會對待它,如果你有一個空字符串把它叫做 - 打印(「」)。

如果沒有定義參數,則不能調用第二個函數,因爲它沒有設置默認值,並且會發出錯誤。