Невозможно обновить функциональную ошибку

Я пытаюсь удалить косые черты из магических кавычек из массива. Таким образом, у меня есть две функции: одна – удалить косые черты, а другая – установить переменную.

// Strip slashes from an array. function strip_magic_quotes($array) { if (get_magic_quotes_gpc()) { function stripslashes_array($array) { return is_array($array) ? array_map('stripslashes_array', $array) : stripslashes($array); } return stripslashes_array($array); } return $array; } function set_variable($array = array(),$key,$params = array()) { # If $params is not an array, let's make it array with one value of former $params. if(!is_array($params)) $params = array($params); if(!is_array($array)) parse_str($array, $array); # Strip slashes from the array if get_magic_quotes_gpc is on. $array = strip_magic_quotes($array); # This will return true or false. if(in_array('boolean', $params)) return isset($array[$key]) ? true : false; # This will regard '0' as a string. # Return value or 0 as a string. elseif(in_array('0', $params)) return isset($array[$key]) && ($array[$key] == '0') ? trim($array[$key]) : null; # Return null as string if 'null_to_string' is set. elseif(in_array('null_to_string', $params)) return isset($array[$key]) && !empty($array[$key]) ? trim($array[$key]) : 'null'; # Check if the key is an array. elseif(isset($array[$key]) && !empty($array[$key]) && is_array($array[$key])) return isset($array[$key]) && !empty($array[$key]) ? $array[$key] : null; # This will regard '0', empty space as falsey. # Return value or null. else return isset($array[$key]) && !empty($array[$key]) ? trim($array[$key]) : null; } $array = array( 'name'=>'Hello', 'type'=>'{"page":"page"}' ); # set the required array. $items_variable = array( 'name', 'type' ); # loop the array. foreach( $items_variable as $item_variable ) { # set the main variables. $$item_variable = set_variable($array,$item_variable); } print_r($type); 

Я получаю эту ошибку на моем реальном сервере, который я не понимаю,

Неустранимая ошибка: не удается переопределить stripslashes_array () (ранее объявленный в json.php: 16) в json.php в строке 16

строка 16 относится к этой function stripslashes_array($array) линии function stripslashes_array($array) которая, похоже, не имеет никакой ошибки.

Любая идея, как это исправить?

Related of "Невозможно обновить функциональную ошибку"

Случается, что каждый раз, когда вы вызываете функцию strip_magic_quotes PHP пытается объявить функцию stripslashes_array .

Почему вы думаете, что хотите вложить эту функцию? Если вы действительно хотите сделать это таким образом (чего не следует), вы можете изменить его на:

 if (get_magic_quotes_gpc() && !function_exists('stripslashes_array')) { 

Хотя это исправляет проблему, вы просто не должны этого делать, в первую очередь, потому что:

  • было бы лучше отключить (если возможно) магию * для лучшего человечества.
  • объявление функций в функциях (хотя возможно) должно быть действительно устранено почти во всех случаях.

Или вы просто можете просто полностью отказаться от этой внутренней функции, если вам это не нужно в другом месте и просто позвольте коду работать во внешней функции.

По этой причине вложенные названные функции почти бесполезны.

Вы должны либо переместить вложенную функцию, либо выполнить явную проверку function_exists .

Вы можете использовать анонимную функцию в PHP 5.3 или выше.