Есть ли способ отправить параметры в функцию обратного вызова, не создавая сначала мою собственную функцию?

У меня есть массив значений, которые я хотел бы запускать через htmlspecialchars, но с таким аргументом, как:

$param = htmlspecialchars($param, ENT_QUOTES); 

Проблема в том, что у меня есть массив значений, который я хочу запустить htmlspecialchars:

 $array = array_map('htmlspecialchars', $array); 

и я хотел бы знать, есть ли способ передать ENT_QUOTES в обратный вызов array_map?

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


После ответа ниже, вот мой конечный результат:

 $array = array_map('htmlspecialchars', $array, array_fill(0, count($array), ENT_QUOTES)); 

Это просто заполняет массив с таким количеством значений, как массив $ array, и заполняется ENT_QUOTE.

Related of "Есть ли способ отправить параметры в функцию обратного вызова, не создавая сначала мою собственную функцию?"

Это должно работать, если вы передадите второй массив в качестве параметра array_map который будет содержать столько элементов ENT_QUOTES сколько вашего количества элементов в $array :

 $quote_style = ENT_QUOTES; $array = array('"',"'","''''''''''''\""); $ent_quotes_array = array($quote_style, $quote_style, $quote_style); $array = array_map('htmlspecialchars', $array, $ent_quotes_array); print_r($array); 

Или, немного более элегантно:

 $array = array('"',"'","''''''''''''\""); $ent_quotes_array = array_fill(0, sizeof($array), ENT_QUOTES); $array = array_map('htmlspecialchars', $array, $ent_quotes_array); 

Вот моя вспомогательная функция вывода …

 function change_values_for_encode_output(&$item, $key) { $item = htmlentities($item, ENT_QUOTES); } function encode_output_vars($vars) { if(is_array($vars)) { array_walk_recursive($vars, 'change_values_for_encode_output'); return $vars; } else { $vars = htmlentities($vars, ENT_QUOTES); return $vars; } }