PHP isset() 返回 false 什么时候应该返回 true?

标签 php isset

好吧...所以在我的表单上,我将所有字段设置为如下所示:

name="formdata['name']"name="formdata['active']"

当然,这意味着在这些字段中输入的任何内容都应存储在 $_POST['formdata']['name']$_POST['formdata'][' 中事件']

我这样做是因为我将“formdata”传递给了我编写的几个函数(它们应该正常工作)。现在假设我正在使用它来编辑项目或添加新项目 - - 名称将按其应有的方式执行这些功能,并且该项目将以其名称保存,但“事件”永远不会按其应有的方式保存。输入字段是一个复选框——如果选中,则值为“1”。

如果我在输入“Name”并检查“active”后print_r($_POST['formdata']),我会得到:Array (['name'] => Name ['active'] => 1).

看起来不错,对吧?但是当我执行以下操作时:

if (!isset($_POST['formdata']['active']) echo "Error 1";
if (empty($_POST['formdata']['active']) echo "Error 2";
if ($_POST['formdata']['active'] != 1) echo "Error 3";

它们都返回错误!我对此感到困惑。我是否忽略了一些非常简单的事情?我已经想了至少 2 个小时了。

最佳答案

删除 HTML 中输入名称中的单引号,使其显示为:

name="formdata[active]"

添加单引号意味着您必须在 PHP 中访问数组,如下所示:

$_POST['formdata']['\'active\'']

$_POST['formdata']["'active'"]

这非常不方便。

关于PHP isset() 返回 false 什么时候应该返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569293/

相关文章:

php - 为什么不将哈希函数迭代 10,000,000 次?

php - 语法问题 - 如果进行另一个选择则隐藏和显示选择器

php - 如何以降序重新排序整个sql语句?

php - 复制 PHPs 函数集

php - 尝试检查用户名是否输入 - PHP

php - 左连接重复项

php - Laravel 5.1 - 当注册用户应用程序重定向到/dashboard 但不检查帐户是否已确认

php - 如果我将 isset() 放在同一个 IF 语句中,为什么我没有收到 PHP 通知数组索引不存在?

php - 在 PHP 中正确使用 isset 和 filter_input

php - 即使文本字段为空,isset() 的计算结果也为真。这是为什么?