Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как упростить выражение, $a=isset($_GET['a'])?$_GET['a']:false  
:(
    Опции темы
SelenIT
Дата 4.5.2007, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(GZep @  4.5.2007,  17:30 Найти цитируемый пост)
isset + !empty - слишком длинно...

Правильно, поэтому isset тут лишний абсолютно smile.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
GZep
Дата 4.5.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



ну, это завиит от конкретной ситуации.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
SelenIT
Дата 4.5.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



GZep, не зависит. В ситуациях, когда по смыслу нужен empty, его и достаточно (он сам по себе не дает нотайса на несуществующую переменную), если нужно проверить существование переменной независимо от значения, хватит одного isset-а. А if (isset($a) && !empty($a)) полностью эквивалентна if (!empty($a)) - разве не так?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
BuShaRt
Дата 4.5.2007, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



GZep
Спор зашел в тупик и двоем мы точно не найдем ответа, будем ждать людей более опытных...
PM MAIL   Вверх
GZep
Дата 4.5.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



SelenIT, дошло smile 

BuShaRt, короче, ладно. smile согласен с закрытием этого спора. Думаю, что мы раскрыли эту проблему так как никто ее еще не раскрывал...лови медаль в репу! smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BuShaRt
Дата 5.5.2007, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



GZep
 smile 
Позитивный ответ, радует... и спасибо за урок по ручному котролю ошибок ;)
PM MAIL   Вверх
Alx
Дата 18.12.2007, 01:34 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 6
Всего: 78



у меня сегодня получилось
Код

$act = @$_GET['act'] or $act = 'idx';

это конечно далеко от
Код

var act = act || 'idx';

но зато симпатичнее, чем
Код

$act = isset($_GET['act']) ? $_GET['act'] :  'idx';

да и с null/0 все знаем, как PHP расправляется, но может, кому-нибудь понравится smile
если ноль не ждем)

Это сообщение отредактировал(а) Alx - 18.12.2007, 01:39


--------------------
PM MAIL WWW ICQ   Вверх
bars80080
Дата 18.12.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Alx, если ты настаиваешь на:
Цитата

$act = @$_GET['act'] or $act = 'idx';

, то очень зря
почитай это http://phpclub.ru/talk/showthread.php?s=&a...mp;pagenumber=1
я честно говоря пёрся по этому восьмистраничному эпосу,
но фанатичный модератор верно указывает на следующий факт:

животное @ - ни в коей мере не должна быть частью исполнительного кода,
это всего лишь средство отладки для программиста, и по завершению создания кода, его скрипты по определению не должны генерировать ошибок

для меня хватает уже этого

если тебе недостаточно, многие начинают уверять, де почему нельзя использовать, если она даёт нужный результат и т.п....

низя!
генерация ошибки и её погашение по определению будет жрать больше ресурсов, чем спокойный ход программы
один из товарищей на тамошнем форуме произвёл проверку на время, как оказалось @ на порядок увеличивает время выполнения

ну а если хочется кокретно поспорить, ссылка на форум дана
PM MAIL WWW   Вверх
flashaa
Дата 18.12.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Цитата(sergejzr @ 3.5.2007,  13:20)

Код

$a=isset($_GET['a'])?$_GET['a']:false; 


нельзя ли как нибудь попроще такое написать? 

Проще написать можно так:
Код

$a =  @$_REQUEST['a']; 
$a = !$a ? false;


Это если строго соблюсти условие.
Проще будет $a =  @$_REQUEST['a'];
А дальше смотреть не false а null.
Код


if ($a == null){
    // переменная не передана
}

PM MAIL   Вверх
Anarki
Дата 18.12.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 7
Всего: 11



Цитата(flashaa @ 18.12.2007,  15:33)
Это если строго соблюсти условие.
Проще будет $a =  @$_REQUEST['a'];
А дальше смотреть не false а null.
Код


if ($a == null){
    // переменная не передана
}



Не проще ли так?

Код

if (!isset($_REQUEST['a'])) {
   // переменная не определенна
}


Это сообщение отредактировал(а) Anarki - 18.12.2007, 16:28


--------------------
PM WWW   Вверх
Fally
Дата 18.12.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



А так не пойдёт?
Код

function getParam($par_name, $par_method = "POST") {
    if(array_key_exists($par_name, $GLOBALS['_'.$par_method])) {
        return $GLOBALS['_'.$par_method][$par_name];
    } else {
        return false;
    }
}


А потом вызывать:
Код

$val = getParam('param_name', 'GET');



--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
HackMan
Дата 19.12.2007, 04:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


Профиль
Группа: Участник
Сообщений: 391
Регистрация: 18.6.2005
Где: .ua

Репутация: 8
Всего: 9



Так шаблоны в среде разработки вроде никто не отменял  smile 


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Alx
Дата 19.12.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 6
Всего: 78



я использую @.
и не вижу в этом ничего плохого. например,так:

Код

$f = @mysql_fetch_array(mysql_query('.... LIMIT 1'));
if(!empty($f)) ... 


или так::

Код

$post = @$_POST['datasend'];
if(!!$f) ...


считаю, что в данных случаях это оправдано.

так почему бы и не писать

Код

$post = @$_POST['datasend'] or $post = 'get';


Добавлено через 48 секунд
тем более что конструкция @... or... вполне официальная конструкция языка


--------------------
PM MAIL WWW ICQ   Вверх
bars80080
Дата 19.12.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата

тем более что конструкция @... or... вполне официальная конструкция языка 

да ну на фиг! пошлите меня туда, где это написано
PM MAIL WWW   Вверх
Fally
Дата 19.12.2007, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



Цитата(Alx @  19.12.2007,  17:23 Найти цитируемый пост)
и не вижу в этом ничего плохого.

ага, сам себе помощь скрываешь... а так больше ничего плохого ;)


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1073 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.