Почему не срабатывает условие? По факту, получается - если 403 != 403 то присваиваем true. Очевидно, что здесь условие не работает, но оно, все равно, присваивает true. Что я не так понимаю?
$headers = 'HTTP/1.1 403 Forbidden';
preg_match('/[0-9]{3}/ui', $headers, $matches);
if((int)$matches[0] != 403) {
$headers_check = true;
}
echo $headers_check;
//Результат вывода 1
Всё у вас работает правильно, допишите else $headers_check = false и выведите переменную через var_dump и увидите корректную обработку условия.
$headers = 'HTTP/1.1 403 Forbidden';
preg_match('/[0-9]{3}/ui', $headers, $matches);
if((int)$matches[0] != 403) {
$headers_check = true;
} else {
$headers_check = false;
}
var_dump($headers_check);
Потому, что переменные нужно определять полностью
$headers = 'HTTP/1.1 403 Forbidden';
preg_match('/[0-9]{3}/ui', $headers, $matches);
if((int)$matches[0] != 403) {
$headers_check = true;
} else
$headers_check = false;
var_dump($headers_check);
Особенно, если вы используете их в коде повторно.
А еще лучше так
$headers = 'HTTP/1.1 403 Forbidden';
preg_match('/[0-9]{3}/ui', $headers, $matches);
$headers_check = ((int)$matches[0] != 403);
var_dump($headers_check);
Перед условием инициализируй переменную.
$headers_check = false;
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости