Оператор ==
выполняет преобразование типов для двух значений, пытаясь получить их одинаковый тип.В вашем примере он преобразует второе значение из строки в целое число, которое будет равно 1
.Тогда это, очевидно, равно значению, которое вы сопоставляете.
Если бы ваше первое значение было строкой - то есть '1'
в кавычках, а не целым числом, то совпадение не состоялось бы, потому что обе стороныстроки, так что он бы сравнивал строки, и они разные строки.
Если вам нужен оператор точного соответствия, который не выполняет преобразование типов, PHP также предлагает оператор тройного равенства, ===
Это может быть то, что вы ищете вместо этого.
Надеюсь, это поможет.