我花了很多时间在生产环境中找出这个问题。在QA,UAT和DEV环境中,这个工作正常。似乎有些东西与服务器有关。以下是我所做的细节。
我将更多字段添加到具有默认值的现有函数,并使用NULL和''进行测试。作为默认值。
public function test($a, $b, $c = '')
public function test($a, $b, $c = NULL)
当我调用此函数时,最后一个参数没有得到它的值。当我在日志文件中打印参数时,我得到最后一个参数的默认值,即NULL而不是实际值。我正在使用Zend框架1.
下面是将参数写入日志文件的代码。我在函数开头的行下面添加了。
$arg_list = func_get_args();
Sg_Log_Manager::info(print_r($arg_list , true));
任何人都可以帮助我吗?
答案 0 :(得分:1)
首先,在您的描述中,您提到了默认值NULL,但在源代码中,您的默认值为空字符串''。那是不同的东西!
func_get_args()
州的文档:
此函数仅返回传递的参数的副本,并不考虑默认(未传递)参数。