php 中的运算符优先级

Operator precedence in php

我们知道 = 的优先级低于 !

我的问题:如果以上语句为真那么如何执行下面的if()条件

function foo()
{ 
   return false;
}


if(!$a=foo())
{
  echo "Yes, foo() appeared here.";
}

这是作业,不是比较。此外,您有一个分配所需的函数调用。那么顺序是:

1) Function call returning false;
2) Assignment of false value to $a;
3) Negation of $a as !false, i.e., true.