2016-11-02 2 views
0

Я потратил много времени, чтобы выяснить эту проблему в производственной среде. В условиях 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() состояний:

Эта функция возвращает копию только переданных аргументов, и не учитывает по умолчанию (не передаются) аргументы.

+0

, но я передаю все параметры с жесткой кодировкой при вызове функции тестирования. – user3744825

+0

Спасибо за ваш быстрый ответ, но я просто протестировал с нулевым значением и пустой строкой '' и нашел, что не работает – user3744825

 Смежные вопросы

  • Нет связанных вопросов^_^