函数给出布尔值而不是值,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 键上返回布尔值而不是字符串?