小编Mar*_*här的帖子

在php中混淆if语句

我正在刷新一些旧的代码(其他人写的),并且遇到了这个:

if ( empty ( $role_data["role_id" == 1]))
Run Code Online (Sandbox Code Playgroud)

是什么原因(如果有的话)使用上述而不是?:

if ( $role_data["role_id"] != 1)
Run Code Online (Sandbox Code Playgroud)

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 . "'" );
Run Code Online (Sandbox Code Playgroud)

这将获得创建角色的权限.但是如果首先给出一个无效$role_id的(通过$ _GET参数),它将不返回任何内容,因此在以下位置检查空值:

if ( empty ( $role_data["role_id" == 1] ) )
Run Code Online (Sandbox Code Playgroud)

我还不完全清楚它为什么这样写

php if-statement legacy-code

6
推荐指数
1
解决办法
174
查看次数

标签 统计

if-statement ×1

legacy-code ×1

php ×1