Php 简单的代码解释

Php 简单的代码解释,php,ternary-operator,Php,Ternary Operator,这是: $_GET['value'] = isset($_GET['value']) ? $_GET['value'] : ''; 与此相同: $_GET['value'] = isset($_GET['value']) ? $_GET['value'] : false; ? 还是最好先做一个?这个代码还有其他变体吗? 谢谢你的建议 没有。他们不是一回事 如果未设置valueGET参数,则第一个将返回空字符串;如果已设置,则返回参数 如果未设置参数,则第二个将返回false 因此,您正在更改

这是:

$_GET['value'] = isset($_GET['value']) ? $_GET['value'] : '';
与此相同:

$_GET['value'] = isset($_GET['value']) ? $_GET['value'] : false;
?

还是最好先做一个?这个代码还有其他变体吗?
谢谢你的建议

没有。他们不是一回事

如果未设置
value
GET参数,则第一个将返回空字符串;如果已设置,则返回参数

如果未设置参数,则第二个将返回false

因此,您正在更改原始的
$\u GET
数组,这不是一个好主意

另一种语法是null coalesce操作符(
??
),它将代码转换为:

$variable = $_GET['value'] ?? ''; //or false, if you want to stick with the boolean.
??
操作符基本上在左侧表达式上运行
isset()
,并返回truthy表达式的第一次出现


如果需要检查空字符串,应该使用
empty
而不是
isset

这是不同的。你想达到什么目的?不,他们不一样。一个可能将值设置为空字符串,另一个可能将值设置为
false
。为什么要在
$\u GET
集合中设置一个值?这到底意味着什么?@Farer当我收到“未定义索引:值”这样的错误通知时,我可以使用booth代码还是仅使用第一个示例?旁注:根据您使用它的目的,
empty()
可能比
isset()
更好。这对我们来说是未知的。我的问题在这方面还不清楚。@FunkFortyNiner可以是“empty()”用于获取会话号,例如?或者转诊代码?如何使用empty()执行代码?好的,当使用它获取参考代码或会话号时如何使用“empty”?你能给我写一个$variable=$的代码吗;用空的?谢谢你的回答!