我正在刷新一些旧代码(其他人写的),并且遇到了这个:
if ( empty ( $role_data["role_id" == 1]))
使用上述内容而不是?:
的原因是什么(如果有的话)if ( $role_data["role_id"] != 1)
IMO可读性更差,而且代码更多。绩效不是这里的一个因素。
- 编辑 -
我应该提一下,预期输入($ role_data [" role_id"])是0到5之间的数字(含)
- 更多信息 -
我第一次误解了这段代码。 但是,这里发生了什么:
$role_id = htmlspecialchars ( mysql_real_escape_string ( $_GET["role_id"] ) );
$role_data = $db->fctSelectData ( "core_role" , "`role_id` = '" . $role_id . "'" );
这将获得创建角色的权限。但是如果首先给出一个无效的$role_id
(通过$ _GET参数),它将不返回任何内容,因此在以下位置检查空值:
if ( empty ( $role_data["role_id" == 1] ) )
我还不完全清楚为什么用这种方式书写
答案 0 :(得分:4)
该行
if (empty($role_data["role_id" == 1]))
获取翻译成......
if (empty($role_data[0]))
...由PHP解释器提供。这段代码可能是一个“笑话”,一个有趣的黑客或错误的行:
if (empty($role_data["role_id"]) == 1)
..有点道理。