对于下面的代码,我得到一个打印任务的页面,然后退出,即使任务的值为零.
$task = (isset($_POST['task']))?$_POST['task'] :(isset($_GET['task']))?$_GET['task']:0;
if($task == "delete") {
echo $task;
exit();
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
Run Code Online (Sandbox Code Playgroud)
但是,如果我将第一行更改为:
$task = (isset($_POST['task'])) ? $_POST['task'] :(isset($_GET['task'])) ? $_GET['task'] : NULL;
Run Code Online (Sandbox Code Playgroud)
它会正常工作,那么为什么字符串'delete'的值等于0?
Hea*_*ota 11
任何无法转换为数字的字符串都会自动转换为0; 因此,与数字比较时,"删除"为0.
您可以使用身份运算符进行比较以检查类型
if($task === "delete") {
echo $task;
exit();
}
Run Code Online (Sandbox Code Playgroud)
这将确保检查类型并返回false作为结果.
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |