Как передать необязательный параметр в функцию PHP, оставив все остальные обязательные / необязательные параметры (если они есть) равными их значениям по умолчанию? - PullRequest
0 голосов
/ 03 марта 2019

Я использую PHP 7.3.2 на моем ноутбуке, который работает в 64-разрядной операционной системе Windows 10 Home Single Language .

Я установил последнюю версию установщика XAMPP на свой ноутбук, на котором установлены Apache / 2.4.38 (Win32) и PHP 7.3.2

Пожалуйста, рассмотрите ниже определение прототипа встроенной функции PHP htmlspecialchars() из PHP Manual :

htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = TRUE ]]] ) : string

Теперь я толькоЯ хочу установить последний необязательный параметр, т.е. $double_encode с логическим значением FALSE и оставить для всех остальных необязательных параметров значения по умолчанию.

Для достижения этой цели я попробовал следующий код:

<?php
  echo htmlspecialchars('&amp', '', '', FALSE);
?>

После выполнения вышеприведенного кода я получил следующий вывод в своем веб-браузере:

Warning: htmlspecialchars() expects parameter 2 to be int, string given in th67i.php on line 2

Я не понимаю, в чем проблема.Я позаботился о том, чтобы другие параметры устанавливались в значения по умолчанию, оставляя пробелы разделенными запятыми и назначая только необязательный параметр $double_encode для логическое значение FALSE.

Тогда почемуЯ не могу получить вывод и получить предупреждение?Зачем?Какую ошибку я делаю в своем коде?

Пожалуйста, помогите мне решить эту проблему.

Заранее спасибо.

1 Ответ

0 голосов
/ 03 марта 2019

Передача '' не означает возврата к значению аргумента по умолчанию.Это просто означает, что вы пытаетесь передать пустую строку.

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

htmlspecialchars('&amp', ENT_COMPAT | ENT_HTML401, ini_get('default_charset'), FALSE);
...