为什么函数的最后一个参数没有得到它的值?

时间:2016-11-02 14:10:17

标签: php zend-framework

我花了很多时间在生产环境中找出这个问题。在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));

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

首先,在您的描述中,您提到了默认值NULL,但在源代码中,您的默认值为空字符串''。那是不同的东西!

func_get_args()州的文档:

此函数仅返回传递的参数的副本,并不考虑默认(未传递)参数。