问题描述
我见过一个函数,通过在函数内部返回 htmlspecialchars()
方法,将输出的 HTML 转义到页面上:
function escape($string="") {
return htmlspecialchars($string);
}
教程说总是把参数设置为空字符串:$string = ""
为什么一定要这样做?当然,下面的函数也能正常工作吗?
function escape($string) {
return htmlspecialchars($string);
}
在这两种情况下,您都可以在从数据库中获取行/记录后使用以下内容调用该函数:
$db_id = escape($row['id']);
我不明白为什么参数最初必须被赋予一个空字符串的值?
安娜
解决方法
尝试运行下面给出的代码块
功能一:参数可选
<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
function escape($string="") {
return htmlspecialchars($string);
}
echo escape();
?>
功能 1:参数不是可选的
<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
function escape($string) {
return htmlspecialchars($string);
}
echo escape();
?>
第二个函数会抛出错误Fatal error: Uncaught ArgumentCountError: Too few arguments to function escape(),0 passed in
参考php.net