Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > undefined index lang


Автор: VoodariuS 30.12.2014, 19:00
имеется код 
<?php
$arLang = array('en', 'ru');
$sLang = in_array($_GET['lang'], $arLang)?$_GET['lang']:$arLang[0];

если в юрл нет ?lang то выдает ошибку 
Undefined index: lang in index.php on line 3

люди говорят, что надо использовать isset, но я не знаю, как, а так как код не мой, то ради одной строчки учить php не рационально. помогите пожалуйста 

Автор: _zorn_ 31.12.2014, 04:02
Код

<?php
$arLang = array('en', 'ru');
$sLang = isset($_GET['lang']) ? (in_array($_GET['lang'], $arLang)?$_GET['lang']:$arLang[0]) : $arLang[0];

А вообще на нотайсы можно забить и отключить их.

Автор: VoodariuS 31.12.2014, 09:33
Спасибо тебе, добрый человек. С Новым Годом! Пусть тебе дед Мороз под елку принесет именно то, что ты хочешь  smile 

Автор: Sanchezzz 3.1.2015, 23:41
Лучше не забивать на такие мелочи, а решать проблему, потому что это проблема.
Маленькая проблема может породить большую проблему.

Сделайте себе хелпер фаил види полезных для себя функци, где не будь в инициализации конфига подрубайте его.
Код

function array_get($array, $key, $default = null)
{
     return isset($array[$key]) ? $array[$key]: $default;
} 

Я бы следующий ваш код сделал таким:
Код

define("LANG_RU", "ru");
define("LANG_EN", "en");
$arLang = array(LANG_RU, LANG_EN);

$sLang = array_get($_GET, "lang", LANG_RU);

Как правило любые операции сравнения на число или строку лучше избегать, чтобы меньше искать и справлять в коде в случае когда эти переменные меняются.  Будущему возможному программисту будет гораздо приятнее понимать код и воспринимать.
Для ООП лучше всего константы хранить в интерфейсах так они меньше мозолят глаза, особенно если их очень много.
Ну это все мои придирки smile 

Автор: _zorn_ 5.1.2015, 10:47
Цитата(Sanchezzz @  4.1.2015,  06:41 Найти цитируемый пост)
Лучше не забивать на такие мелочи, а решать проблему, потому что это проблема.

Я знал, что кто нибудь мимо не пройдет smile
Но так как
Цитата(VoodariuS @  31.12.2014,  02:00 Найти цитируемый пост)
ради одной строчки учить php не рационально

Этот совет не нужен  smile 

Автор: Gold Dragon 7.1.2015, 09:43
Цитата(_zorn_ @  31.12.2014,  05:02 Найти цитируемый пост)
А вообще на нотайсы можно забить и отключить их. 
Ты вроде шаряший прогер, просто не понятна твоя позиция  smile Как насчёт "ЗА И ПРОТИВ"? 

PS
некоторые нотисы в более поздних версиях превращаются в фатал  smile 

Автор: _zorn_ 7.1.2015, 11:33
Цитата(Gold Dragon @  7.1.2015,  16:43 Найти цитируемый пост)
просто не понятна твоя позиция

Выше же объяснил. Сам конечно стараюсь обращать на них внимание. Правда иногда от лени все же юзаю собаку smile

Автор: Gold Dragon 7.1.2015, 17:18
Цитата(_zorn_ @  7.1.2015,  12:33 Найти цитируемый пост)
Правда иногда от лени все же юзаю собаку
не люблю собак  smile 

Автор: _zorn_ 9.1.2015, 12:23
Ну на unlink там например  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)