PHP:( && )逻辑与运算符使用说明
第一次看到以下语句的写法大惑不解
($mCfg['LockChinaIp']==1
&& (int)$_SESSION['AdminUserId']==0
&& substr_count($_SERVER['PHP_SELF'], '/manage/')==0
&& (preg_match('/zh-c/i', substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4)) || preg_match('/zh/i', substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4)))0
)
&& js_location('/unavailable.php', '', '.top');
上述语句没有IF 关键字,PHP的处理机制是:前一个判断为真时,就执行后一个语句。
即:($mCfg['LockChinaIp']==1
&& (int)$_SESSION['AdminUserId']==0
&& substr_count($_SERVER['PHP_SELF'], '/manage/')==0
&& (preg_match('/zh-c/i', substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4)) || preg_match('/zh/i', substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4)))0
) 为真,就转到 "/unavailable.php"页面。