【发布时间】:2015-11-13 08:22:02
【问题描述】:
我有一个看起来有点像这样的函数:
function name( param1 = default, param2 = default, param3 = default) {...}
我通过将数组元素作为参数传递来调用函数,如下所示:
name( $param['foo'], $param['bar'], $param['hello'] );
我的问题是——如果函数调用中传递的一个(或多个)元素是未定义的,它是如何在函数本身中处理的?我问是因为我正在尝试调用该函数,但我无法知道是否定义了任何元素。
在函数内部,我尝试调试使用isset()、is_null() 和empty() 传递的参数,结果分别为false、true 和true。这使我相信,由于实际上是在传递某些内容,因此未设置默认值。如果有人能解释如何处理这样的事情,我将不胜感激。
【问题讨论】:
-
嗯,如果你传递数组值,为什么不传递数组本身呢?
-
@bksi 这完全有可能,但我在想,如果我确切知道我需要哪些数组元素,我不妨通过这些。
-
你传的方法传入后可以查看。
-
只有在没有传递参数时才使用默认值。如果你传递一个参数,它将被使用,即使它是未定义的。
标签: php parameter-passing argument-passing optional-parameters