Помогите найти ошибку в написании if - else
Ку, есть условие if которое почему то не срабатывает,
Значение: $region = 'Севастополь' и по сути должен выполнятся else, а все равно проходит условие и прорабатывает скрипт. Подскажите куда посмотреть..,
public static function refleshPosition($site_id = null): string
{
if (isset($site_id)) {
$site = systems::$db->select('site', ['id', 'region', 'topvisor_id', 'domen'], ['id' => $site_id])[0];
$yandex = topvisor::getPosition($site['topvisor_id'], 'Yandex', $site['region']);
echo $site['region'];
$region = str_replace(' ', '', $site['region']);
if ($region !== 'Севастополь' or $region !== 'Симферополь' or $region !== 'Керчь' or $region !== 'Евпатория' or $region !== 'Ялта') {
echo 'а я вызываюсь';
$google = topvisor::getPosition($site['topvisor_id'], 'Google', $site['region']);
$result = array(
'yandex' => $yandex,
'google' => $google,
);
} else ($result = array(
'yandex' => $yandex,
'google' => '',
));
}
$result = serialize($result);
systems::$db->update('site', ['position' => $result], ['id' => $site_id]);
return "<p>Позиции обновлены</p>";
}
Ответы (1 шт):
Автор решения: Ordman
→ Ссылка
$region !== 'Севастополь' or $region !== 'Симферополь'
Условие: регион не Севастополь ИЛИ не Симферополь.
Допустим регион 'Севастополь', очевидно что, Севастополь это не Симферополь, второй предикат принимает значение TRUE и все условие становится TRUE
Далее возможны варианты:
$regions = ['Севастополь','Симферополь','Керчь','Евпатория','Ялта'];
- Регион один из $regions:
in_array($region, $regions); - Регион ни один из $regions:
!in_array($region, $regions);