php - isset($_GET(var)) 为真,即使 var 为空或未定义
问题描述
我正在向 amisset()
语句发送多个未设置的变量,但结果是正确的。
所以我有一个表单,我通过一个监听器发送数据,同时我将变量打印到 Web 控制台
formQuote.addEventListener('submit', (event) => {
event.preventDefault();
fromDate = formQuote.elements["fromDate"].value;
toDate = formQuote.elements["toDate"].value;
apptmnt = $('input[name="apptmnt"]:checked').val();
console.log(fromDate);
console.log(toDate);
console.log(apptmnt);
$('#priceDisplay').load('forms/quote.php?fromDate=' + fromDate + '&toDate=' + toDate + '&apptmnt=' + apptmnt);
由于我没有输入任何内容,控制台在单击提交时显示 2 个空行(fromDate、toDate)和未定义。数据由 php 文件捕获
if (isset($_GET['fromDate'], $_GET['toDate'], $_GET['apptmnt'])) {
echo 'true';
}
else {
echo 'false';
}
作为回报,我看到了true
!?
我对文档的理解是,仅当所有参数都为真时 isset 才返回真,因此isset($a, $b)
与isset($a)*isset($b)
有什么想法会导致这种情况吗?
解决方案
isset
示例代码显示和之间的区别empty
<?php
$a = array('blank'=>'');
var_dump(isset($a['blank'])); // bool(true)
var_dump(!empty($a['blank'])); // bool(false)
推荐阅读
- css - 如何使用 Angular 5 根据其组件将特定类添加到导航栏
- jquery - 从 mvc 中的 SQL Server 删除 Jquery 表中的按钮
- javascript - JavaScript 警报消息不起作用
- python - python - 捕获用户的鼠标输入
- javascript - Grunt cssmin 和时间戳文件名
- c# - 将两个 C# DbGeography 多边形连接成一个多多边形
- sql - 清理我试图在 SQL 中创建的时间线
- sql - 左连接不起作用 - 它忽略了左表的记录
- powerbuilder - UFT 上的 PbDataWindow 右键单击问题
- javascript - JS:检查单个字符是否不是空格