2010-01-05 24 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对你来说是非常聪明的处理这种类型的东西!