php 中令人困惑的 if 语句
Confusing if statement in php
我正在刷新一些旧代码(别人写的),并遇到了这个:
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 参数),它 returns 什么都没有,因此检查空值:
if ( empty ( $role_data["role_id" == 1] ) )
为什么这么写我还是不太明白
行
if (empty($role_data["role_id" == 1]))
翻译成...
if (empty($role_data[0]))
...由 PHP 解释器。此代码可能是 "joke"、有趣的 hack 或错误,如行:
if (empty($role_data["role_id"]) == 1)
..有点道理。
我正在刷新一些旧代码(别人写的),并遇到了这个:
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 参数),它 returns 什么都没有,因此检查空值:
if ( empty ( $role_data["role_id" == 1] ) )
为什么这么写我还是不太明白
行
if (empty($role_data["role_id" == 1]))
翻译成...
if (empty($role_data[0]))
...由 PHP 解释器。此代码可能是 "joke"、有趣的 hack 或错误,如行:
if (empty($role_data["role_id"]) == 1)
..有点道理。