提问人:Md Mohidul Haque Khan 提问时间:11/5/2023 更新时间:11/6/2023 访问量:29
“PHP 中的 Function() 返回”跳过 filter_var() 中的 syntex 错误
"Return of a Function() in PHP" skip syntex error in filter_var()
问:
private function getURL(){
$url = isset($_GET['url']) && $_GET['url'] != "" ? $_GET['url'] : "home";
return explode("/", filter_var(trim($url,"/")),FILTER_SANITIZE_URL);
}
上面的代码在没有任何警告或错误的情况下执行,但 getURL() 函数的第二行应该是这样的: return explode(“/”, filter_var(trim($url,“/”),FILTER_SANITIZE_URL));
为什么我没有收到任何错误或警告?
请让我知道,这里发生了什么?
提前致谢。
答:
1赞
osakagreg
11/6/2023
#1
Explode 使用三个参数进行调用:
- 分隔符:
"/"
- 要拆分的字符串:
filter_var(trim($url,"/"))
- 附加参数:
FILTER_SANITIZE_URL
在本例中,FILTER_SANITIZE_URL 将作为 limit 参数传递,该参数需要一个整数。由于 FILTER_SANITIZE_URL 是一个常量而不是整数,因此此处未按预期使用。
但是,PHP 很宽松,不会抛出错误。相反,它可能会将常量转换为整数(这可能会导致限制为 0 或其他一些意外值)并继续执行。
下一个:Bash 中单引号和双引号的区别
评论