Идентичный оператор странного поведения

Кто-нибудь может объяснить мне это странное поведение «идентичного» оператора в php?

$any_integer_but_not_one = -1;

var_dump( !$any_integer_but_not_one === 1 ); // bool(false)
var_dump(  $any_integer_but_not_one !== 1 ); // bool(true)

$int_one = 1;

var_dump( !$int_one === 1 ); // bool(false)
var_dump(  $int_one !== 1 ); // bool(false)

Я ожидал, что эти тесты всегда будут давать одинаковые результаты (true-true или же false-false), но они этого не делают.

я думал так !x === y а также x !== y сделать то же самое, так в чем же разница? Вот я и говорю только для идентичный оператор, а не равный один.
(Любые другие вопросы, которые я обнаружил, касались различий между равенство а также идентичность)

1

Решение

это потому что —

!$any_integer_but_not_one вернусь false,

когда var_dump( !$any_integer_but_not_one === 1 ); это var_dump( false === 1 );

так что вернусь false

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]