我在我的笔记本电脑上使用PHP 7.3.2,它运行在Windows 10 Home Single Language 64位操作系统上。
我在我的笔记本电脑上安装了最新版本的XAMPP安装程序,安装了Apache / 2.4.38(Win32)和PHP 7.3.2
请从htmlspecialchars()
中考虑以下PHP内置PHP函数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('&', '', '', FALSE);
?>
执行上面的代码后,我在网络浏览器中得到以下输出:
Warning: htmlspecialchars() expects parameter 2 to be int, string given in th67i.php on line 2
我不明白我哪里出错了。我通过保留用逗号分隔的空格并仅将可选参数$double_encode
分配给布尔值FALSE
来处理其他参数设置为其默认值。
那么为什么我无法得到输出并得到一些警告?为什么?我在代码中犯了什么错误?
请帮我解决这个问题。
提前致谢。
传递''
并不意味着回退到默认参数值。这意味着 - 试图传递一个空字符串。
如果要实现此目的,则需要重现默认值:
htmlspecialchars('&', ENT_COMPAT | ENT_HTML401, ini_get('default_charset'), FALSE);