Способ тупой, жирный, уроццкий, но рабочий:
if ($_REQUEST['a']!='') $a=10; else $a=$_REQUEST['a'];
Хитрее, но немного по другому, переменную дефолт задаем изначально:
$a=10;if ($_REQUEST['a']!='') $a=$_REQUEST['a'];
ТрехЧлен:
$_REQUEST['a']=='' ? $a=10 : $a=$_REQUEST['a'];
И Самый мой любимый способ - логический оператор OR:
$a=$_REQUEST['a'] or $a=10;
А вы какие способы знаете ? Кстати набросать можно и на других языках, очень интересно. Надо понимать только что $_REQUEST['a'] - это взятая CGI переменная
а вот что я затеял на HashCode, впринципе ребята боролись минут 10:
Взять CGI переменную 'a', или если ее нет, то приравнять 10.
Мой вариант: if ($_REQUEST['a']=='') $a=10; else $a=$_REQUEST['a'];
У кого есть вариант покороче ?
задан 19 минут назад
jkeks
20●4
20% принятых
Можно назвать победителем ?:
$a=$_REQUEST['a'] or $a=10;
(9 секунд назад)jkeks
2 ответа
2
Тернарное выражение:
$a = ( $_REQUEST['a'] == '' ) ? 10 : $_REQUEST['a'];
//Можно и так:
$a = ( ( $a = $_REQUEST['a'] ) == '' ) ? 10 : $a;
//Или так:
$a = $_REQUEST['a'];
if ( $a == '' ) $a = 10;
//Не знаю насчёт PHP, в JS можно:
$a = ( $_REQUEST['a'] == '' && 10 ) || $_REQUEST['a'];
$a = ( ( $a = $_REQUEST['a'] ) == '' && 10 ) || $a;
$a = $_REQUEST['a'] || 10;
Убираем все необязательные пробелы:
- 42
- 36
- 34
- 44
- 37
- 22
Варианты 4-6 не подходят для PHP!!!
отвечен 17 минут назад
timka_s
3.4k●9
Трехчлен, отлично, но длинно
(16 минут назад)jkeks
- Удобнее.
- Быстрее. у тернарного выражения много плюсов, пользуйтесь)
(15 минут назад)Андрей Аршинов
Убираем все необязательные пробелы:
Ваше - 51, вариант 1 - 42, вариант 2 - 36, вариант 3 - 34, вариант 4 - 44, вариант 5 - 37
Что-же по вашему коротко?)
(11 минут назад)timka_s
да.. третий вариант тоже продуманный, тоже использую, но думаю можно короче.
(11 минут назад)jkeks
Варианты конечно забавные ;) но можно и короче.
(6 минут назад)jkeks
показано 5 из 8 показать все добавить комментарий
1
// определяем функцию:
// работает в т.ч. со свойствами объектов и неопределенными переменными
function v(&$var, $alt = false) { return !empty($var) ? $var : $alt; }
// и далее:
$a = v($_REQUEST['a'], 10);
Ну ок, пробуйте, но с этим - аккуратно ;)
$a = @$_REQUEST['a'] or $a = 10;
отвечен 15 минут назад
Sh4dow
6.1k●1●3●12
ммм.. функция.. тоже вариант.. а без функций ?
(12 минут назад)jkeks
Добавил вариант.
(6 минут назад)Sh4dow
а зачем @ ? да пожалуй это самый красивый, $a=$_REQUEST['a'] or $a=10; сомневаюсь что можно короче.
(3 минуты назад)jkeks
Функцию добавьте в основной класс, еще спасибо скажете. Собака глушит "Warning: undefined index". В вашем изначальном коде этот варнинг тоже есть, кстати.