【发布时间】:2014-01-11 21:45:04
【问题描述】:
我正在阅读别人的代码,他们有这样的一行:
$_REQUEST[LINKEDIN::_GET_TYPE] = (isset($_REQUEST[LINKEDIN::_GET_TYPE])) ? $_REQUEST[LINKEDIN::_GET_TYPE] : '';
我只是想确保我遵循这一点。我可能终于弄清楚了它的逻辑。
这是正确的吗?
如果设置了$_REQUEST[LINKEDIN::_GET_TYPE],则将其分配给自身。 (意味着什么都不做的条件)否则将其设置为空字符串。 (这意味着 NULL(未定义)和 "" 在脚本的其他部分不会被同等对待。)
【问题讨论】:
-
这会比
if (!isset($_REQUEST[LINKEDIN::_GET_TYPE])) $_REQUEST[LINKEDIN::_GET_TYPE] = '';好得多,如果只是因为这种冗余的落后方式会产生这样的问题。 -
设置为空字符串,不是空字符串。
-
@deceze,这正是我的想法。冗余和倒退!谢谢。
-
当我说“空字符串”时,我的意思是“”。但我会尽量在措辞上更加小心。
标签: php logic ternary-operator