В операторе
if ($isCopy = null !== $id) {
PHP будет оценивать операторы в соответствии с правилами вычисления. Операторы сравнения (такие как !==
) оцениваются до =
.
Итак, null !== $id
оценивается первым. ноль сравнивается с id
. Обратите внимание, что это не тождественный оператор сравнения !==
, поэтому он будет оценивать true (если id
не равно null по значению и типу) или false (id
не равно null по значению и типу).
Наконец, операция присваивания $isCopy
присваивается результату сравнения. Это будет либо true, либо false.
$isCopy
будет true, если $id
не является нулевым типом, и поэтому оператор if будет обрабатываться, только если id
не является нулевым типом.
Обратите внимание, что $id
может иметь здесь ложное значение, но не может иметь нулевой тип.
Хотя это не требуется логически для PHP, предпочтительно использовать приоритет в скобках. Скобки имеют самый высокий приоритет оператора. Это делает код более понятным и может помочь устранить ошибки, когда программист не уверен в порядке вычисления оператора.
if ($isCopy = (null !== $id)) {