为什么这个IF正在执行?

时间:2013-06-17 13:01:18

标签: php debugging if-statement

有一段代码应该是一个故障安全终结点。我想知道为什么它正在执行。即为什么IF执行后?捆绑条件中的哪一个使其整体true

if ( !$result && !(-1 == $action && strpos($referer, $adminurl) === 0) ) {
    wp_nonce_ays($action);
    die();
    }

enter image description here

1 个答案:

答案 0 :(得分:2)

if ( !$result && !(-1 == $action && strpos($referer, $adminurl) === 0) ) {

这意味着!$result为真,!(-1 == $action && strpos($referer, $adminurl) === 0)为真。 (当a && b为真时,a为真且b为真。)

因此,$result为false,-1 == $action && strpos($referer, $adminurl) === 0为false。 (删除!标志)

然后你可以继续说那个

  1. $result是假的
  2. -1 != $actionstrpos($referer, $adminurl) !== 0。 (或两者兼有)