Мой скрипт на PHP принимает два языковых значения - &lang=ru
или &lang=en
. Если параметр lang
явно не указан или равен любому другому значению, то значение по умолчанию должно быть установлено в en
. Я несколько раз прочитал документацию по логическим операторам в PHP, но так и не могу понять, как реализовать проверку
если не ((lang = "en") или (lang = "ru")) тогда lang = "en"
на PHP. На привычном мне Паскале я легко делаю вот так:
if not ((lang = 'en') or (lang = 'ru')) then lang := 'en';
Я потратил уйму времени, пытаясь реализовать эту нехитрую конструкцию на PHP, но у меня ничего не получается. Силюсь понять что я делаю не так вот в этом коде:
if (!(($lang == "en") || ($lang == "ru"))) {
$lang = "en";
};
Решение проблемы
После того, как Anton Shchyrov указал, что логическое выражение совершенно правильное, я начал отлаживать скрипт и нашел ошибку.
Через полсотни строк я не заметил ошибку, характерную для тех, у кого нет опыта программирования на языках, по синтаксису похожих на C/C++/PHP. Ниже проблемный кусок кода, который останавливает шоу:
$Link = "https://www.domain.dummy/page.html;
if ($lang = "ru") {
$Link = str_replace("dummy", "ru", $Link);
} else {
$Link = str_replace("dummy", "co.uk", $Link);
}
Присвоение значения переменной в условии if ()
не может не впечатлять, но из-за этого скрипт, разумеется, "снесло".
Не знаю как поступить в данном случае - следует ли попросить закрыть вопрос или оставить его?
Ну раз уж все в ответы пишут=)
if (!in_array($lang, ['es', 'en', 'ru', 'fr'])) $lang = "en";
Любое количество предопределённых языков в одном условии.
А ещё можно тернарно
$lang = in_array($lang, ['es', 'en', 'ru', 'fr']) ? $lang : "en";
Список предопределяемых языков это массив который можно хранить в переменной
$langs = ['es', 'en', 'ru', 'fr'];
// Аналогично
$langs = array('es', 'en', 'ru', 'fr');
Мой скрипт на PHP принимает два языковых значения - &lang=ru или &lang=en. Если параметр lang явно не указан или равен любому другому значению, то значение по умолчанию должно быть установлено в en.
Дефольтный язык en
, если задан ru
то язык будет ru
.
$lang = !isset($lang) || $lang !== 'ru'? 'en': 'ru';
echo $lang;
:D Раз уж такая движуха... Сложно было придумать что-то новенькое, но я справился:
switch ($lang) {
case 'ru':
case 'en':
break;
default:
$lang = 'en';
break;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть id, username и ссылка на аккаунта, необходимо узнать номер телефона владельцаВ instagramm-scrapper порылся в абстрактных моделях, и даже не нашел намека...
На фронте при нажатии на кнопку собираю все данные с форми в JSON и отправляю на сервер