Не работает условие? PHP

256
08 июня 2018, 07:10

Почему не срабатывает условие? По факту, получается - если 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
Answer 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);
Answer 2

Потому, что переменные нужно определять полностью

$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);
Answer 3

Перед условием инициализируй переменную.

$headers_check = false;
READ ALSO
Ошибка при выводе из бд

Ошибка при выводе из бд

Ошибка от браузера (или openserver): "mysqli_fetch_array() expects parameter 1 to be mysqli_result"Нужно из бд просто вывести через php поля, делаю так:

268
Вставить текст в готовый docx файл

Вставить текст в готовый docx файл

Есть готовыйdocx файл, (договор), в который нужно в определенные места подставить текстовые данные

267
Отправки текста с формы в базу данных [требует правки]

Отправки текста с формы в базу данных [требует правки]

Здравствуйте уважаемые обитатели этой чудной площадкиДайте пожалуйста пример как сделать форму со следующими полями:

261
Symfony Service Container как в Laravel

Symfony Service Container как в Laravel

Проблема такая:

284