函数给出布尔值而不是值,isset()

Posted

技术标签:

【中文标题】函数给出布尔值而不是值,isset()【英文标题】:functions gives bool and not the value, isset() 【发布时间】:2017-12-24 11:47:22 【问题描述】:

我的 cookie 部分有问题。我想保存并获取我的 cookie,但如果未设置 cookie,我会得到并“找不到索引”。所以我在cookie周围尝试了isset(),但我不能只得到一个布尔值。

代码:

['gender' => isset($_COOKIE['age']),]

结果:

["gender"]=> bool(false)

我需要什么:

["gender"] => string(1) '1'

var_dump $_COOKIE

["gender"]=> string(1) "1"

为什么给 isset() 一个 bool 作为结果而不是实际值作为结果。

Cookie 保存:

问题是,如果设置了 cookie,我将获得一个值,但如果设置了 cookie,并且我在 cookie 周围使用了 isset() 函数,它将显示一个布尔值,而不是真正的值。

【问题讨论】:

查看文档:php.net/manual/en/function.isset.php isset 返回一个布尔值 isset() 如果设置了 cookie(是或否)似乎会返回,此时您可以获取 cookie 的值(如果是) cookie 已设置,因为如果我不使用 isset() 它可以工作。但我不想要错误。未设置时未找到索引。 PHP: "Notice: Undefined variable", "Notice: Undefined index", and "Notice: Undefined offset"的可能重复 我上面问题的答案是错误的,因为这个问题是关于在已经设置的 var 上显示 bool on isset。 【参考方案1】:

为什么给 isset() 一个 bool 作为结果而不是实际值作为结果。

因为isset() 返回一个布尔值。如果 isset() 被评估为 true,则需要返回 cookie 值:

['age' => (isset($_COOKIE['age']) ? $_COOKIE['age'] : false),]

如果设置了 cookie,上述行将返回值,否则返回 false

【讨论】:

【参考方案2】:

isset 总是给你一个布尔返回。请像这样回显您请求的 cookie 的结果:

if(isset($_COOKIE['age'])

   $_COOKIE['age'];

【讨论】:

以上是关于函数给出布尔值而不是值,isset()的主要内容,如果未能解决你的问题,请参考以下文章

在 postgresql 中,如何在 jsonb 键上返回布尔值而不是字符串?

用 phpunit 模拟 symfony 安全,返回空值而不是布尔值(不使用预言)

代码中存在数据类型错误,其中类型是布尔值而不是整数

改变静态布尔值

xsd生成的Java代码中的布尔值

如何在 GCC 下强制设置“布尔”的大小