php - 我的错误处理程序不应该返回 false
问题描述
我的 PHP 文件中有以下错误处理程序:
if (empty($title) || empty($description) || empty($price)) {
header("Location: ../listing1.php?error=emptyfields");
exit();
} elseif (!is_numeric($price)) {
header("Location: ../listing1.php?error=onlynumbers");
exit();
}
但是当我按照is_numeric
错误处理程序输入时,它返回 false 告诉它是error=emptyfields
. 我尝试过切换位置,但它仍然返回 false,现在我迷路了,尽管当我在上面输入任何内容时,0
它都会返回 true。
解决方案
PHP 的empty()
函数会考虑这些值0
并且"0"
为空。因此,即使该值是数字并且设置正确,它仍然会导致不正确的行为。
你需要更加小心你的第一个if
条件。与其说只是empty($price)
,不如考虑做(empty($price) && $price !== 0 && $price !== "0")
。这是一个更长、更详细的验证,但它应该消除错误。
推荐阅读
- python - 删除 datetime 是特定时间之间的特定日期的行
- crashlytics - crashlyticsGenerateSymbolsRelease - 堆栈内存溢出
- flutter - 如何在 Ios 上更改状态栏文本颜色
- javascript - 防止输入框窃取焦点
- javascript - VS 2017 中本地主机上 .NET Core MVC 项目的 Javascript 性能缓慢
- python-3.x - 我有一个排序列表,我想在不使用 count() 函数的情况下计算每个数字的出现次数
- c# - Unity 无法加载 System.Net.Http 脚本程序集
- python - 当文件和数据集都具有“时间”组件时,使用 xarray 打开多文件数据集
- python - Python Selenium Webdriver 将方法添加到 Webelements/自定义“断言”语句
- r - R test_ggplot 没有改变