Автор Тема: Что в переменной, если я туда ничего не записываю  (Прочитано 3221 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
$input{$name} = $value;

...............
$sort=$input{sort};

...............

if ($sort==\'\') # 2 апострофа
{
$sort="postavshik_id";
}

Народ, помогите, что же забивается в переменную $sort если я туда ничего не посылаю(по умолчанию не посылается, а так посылаю эту переменную методом GET для случаев сортировки), сравнение которое я делаю не срабатывает. Мне надо, если $sort пустой (а как это узнать) то подставляется моё значение. Спасибо.

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

$sqlstatement = "SELECT * FROM $tablename ORDER BY $sort";
« Последнее редактирование: 23 Апреля 2002, 17:04:17 от Yuraz »

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
Мне надо, если $sort пустой (а как это узнать) то подставляется моё значение.

if ($sort eq \'\') # 2 апострофа
{
$sort="postavshik_id";
}
Цитировать
Народ, помогите, что же забивается в переменную $sort если я туда ничего не посылаю

$sort будет неопределена (undef)

А вообще:
perldoc perldata
The documentations is your friend

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
NeoNox спасибо.

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
При отладке скрипта можно пользоваться print-ом
и смотреть какие значения принимаються на разных этапах.
У програмиста две руки: левая и !левая
welcome

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
if ($sort eq \'\') # 2 апострофа
{
$sort="postavshik_id";
}


Проще так:
if (!$sort\')
{
$sort="postavshik_id";
}

А еще проще вот так:
$sort||="postavshik_id";
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
Проще так:
if (!$sort\')
{
$sort="postavshik_id";
}

:) тогде еще и так:
unless($sort){....}
 в исканиях.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Green Kakadu
А почему
Цитировать
unless($sort){....}

проще или быстрее чем
Цитировать
$sort||=...;

?
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
А почему ...
проще или быстрее чем

:) гы, а я и не говорил что проще и быстрее - просто раз уж писать if(!что-то), то  unless выглядит естественее, только и всего.
А ведь можно и так:

$sort= $input{sort}? $input{sort}: \'postavshik_id\';

:) раз мы уж начали перебирать варианты.
 в исканиях.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
unless выглядит естественее

:) ну это, скорее, дело вкуса. Впрочем, не буду спорить с авторитетом :)
Цитировать
раз мы уж начали перебирать варианты

Да уж, в перле всегда есть из чего выбрать. И это здорово ;)
Литературный перевод с русского и английского на Perl. Дорого!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28