2010-01-05 47 views
2

實施例:用PHP在這裏分配NULL是否正常?

public function prepare($sql, &$p = NULL) { 

p由參考分配。我不確定是否可以在這裏默認安全地分配NULL。在這種情況下可以嗎?

+0

呃...爲什麼不呢? – Matchu 2010-01-05 01:21:04

+0

警告級別E_STRICT,Matchu,在某些情況下使用'NULL'可以發出警告,我相信。 – 2010-01-05 01:23:01

+0

哦。每天學習新事物。謝謝! – Matchu 2010-01-05 01:27:14

回答

3

爲什麼要爲通過引用傳遞的參數設置默認值?引用傳遞的基本點不在於您可以更改調用者範圍中的原始變量?所以如果它有一個默認值,那麼你不會改變調用者範圍內的任何東西,那麼有什麼意義呢?

+0

重點是,這個變量是可選的,不是嗎?所以如果沒有提供,那麼默認值適用。否則它就沒有意義,因爲變量總是爲NULL。至少這是我的想法。 – openfrog 2010-01-05 09:58:07

0

編譯它,看看:)

如果函數可以用$ P是NULL正常工作,那麼你就沒有任何問題。

+1

oooh ...你如何編譯PHP? :) – 2010-01-05 01:23:19

+0

通常通過輸入php nameofscript.php - 這將編譯和執行它...(與PHP 4.0以上,無論如何) 如果有NULLs的問題,那麼它將是一個運行時錯誤,而不是在編譯過程中拾取。 – mopoke 2010-01-05 01:26:24

+1

@ mopoke,對不起,我只是在開玩笑。 PHP是一種解釋型語言,永遠不會被「編譯」。 – 2010-01-05 01:32:52

1

即使將error_reporting設置爲E_ALL & E_STRICT,該代碼也可以很好地運行。

而關於默認值爲null的整個傳遞引用,我只是將它看作一個可選變量,那就沒問題。你一定要問自己,你是否真的需要這個參考,因爲php對你來說是非常聰明的處理這種類型的東西!