如何通过保持所有其他强制/可选参数(如果有)等于其默认值来将可选参数传递给PHP函数?

问题描述 投票:0回答:1

我在我的笔记本电脑上使用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('&amp', '', '', FALSE);
?>

执行上面的代码后,我在网络浏览器中得到以下输出:

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

我不明白我哪里出错了。我通过保留用逗号分隔的空格并仅将可选参数$double_encode分配给布尔值FALSE来处理其他参数设置为其默认值。

那么为什么我无法得到输出并得到一些警告?为什么?我在代码中犯了什么错误?

请帮我解决这个问题。

提前致谢。

php function parameter-passing htmlspecialchars
1个回答
1
投票

传递''并不意味着回退到默认参数值。这意味着 - 试图传递一个空字符串。

如果要实现此目的,则需要重现默认值:

htmlspecialchars('&amp', ENT_COMPAT | ENT_HTML401, ini_get('default_charset'), FALSE);
© www.soinside.com 2019 - 2024. All rights reserved.