Это поможет вам правильно понять ваш код.
Если вы сделаете это, ваш код будет работать, но эффект будет далеким от того, что вы хотите:
if (self::$instance = null) {
Условное условие всегда будет неудачным (потому что оператор =
возвращает установленное значение, и оно ложно), но self::$instance
теперь будет установлено на null
Это не то, что вы хотите.
Если вы сделаете это:
if (null = self::$instance) {
ваш код не будет работать, потому что вы не можете использовать null
(или любой литерал, такой как строка или целое число) в левой части присваивания. Только переменные могут быть левой частью оператора =
.
Таким образом, если вы неправильно наберете ==
как =
, вы получите ошибку разбора, и ваш код полностью не будет работать. Это предпочтительнее, чем таинственная и трудно обнаруживаемая ошибка.