微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么这个转义 HTML 的函数必须有一个初始设置为空字符串的参数 - PHP?

如何解决为什么这个转义 HTML 的函数必须有一个初始设置为空字符串的参数 - PHP?

我见过一个函数,通过在函数内部返回 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

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。