Автор Тема: Как сравнить 2 переменные на НЕ равенство?  (Прочитано 6979 раз)

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

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Пишу
if (1 == 1) {print "1";} else {print "0";} #1
if (1 != 1) {print "1";} else {print "0";} #0
if ("1" == "1") {print "1";} else {print "0";} #1
if ("1" != "1") {print "1";} else {print "0";} #0
Типа всё ок.

if ("1-1-1" != "1-2-1") {print "1";} else {print "0";} #0
if ("1-1-1" == "1-2-1") {print "1";} else {print "0";} #1
Странно!!??

И ещё вопрос:
Выбираю в массив данные из базы MySQL (5 шт.)
@ary=$sth->fetchrow();
Как правильно проверить элемент массива на NULL?

И ещё:
Как определить есть ли в переменной определённая подстрока?
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как сравнить 2 переменные на НЕ равенство?
« Ответ #1 : 04 Октября 2002, 14:54:25 »
Хм...:)

perldoc perlop

Для сравнения строк есть спец. операторы:

eq, gt, lt, cmp
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Как сравнить 2 переменные на НЕ равенство?
« Ответ #2 : 04 Октября 2002, 14:56:19 »
Цитировать
Странно!!??

для того чтобы проверять числовые значения используй "==" и "!=", а для того, чтобы проверять строки (ведь у тебя уже идут строки в другом примере) надо использовать "eq" и "ne" соответственно.
Цитировать
Как определить есть ли в переменной определённая подстрока?

можно регулярным выражением:

if( $variable =~ /$string/ )
{
    print "В переменной есть требуемая строка";
}
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как сравнить 2 переменные на НЕ равенство?
« Ответ #3 : 04 Октября 2002, 14:57:35 »
Цитировать
Выбираю в массив данные из базы MySQL (5 шт.)
@ary=$sth->fetchrow();
Как правильно проверить элемент массива на NULL?

unless (defined $ary[$el]) не подойдет?

Цитировать
Как определить есть ли в переменной определённая подстрока?

$pos = index $str, $substr, $start_pos
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Как сравнить 2 переменные на НЕ равенство?
« Ответ #4 : 04 Октября 2002, 15:07:43 »
Пасибо ребята!
Быстро и оперативно. Тока покурить успел сходить. :-)

ne - работает!

Цитировать
unless (defined $ary[$el]) не подойдет?

if (defined $ary[4]) {print "1\\n\\n

";}#1
if (defined @ary[4]) {print "1\\n\\n

";}#1

Не катит. :-(
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Как сравнить 2 переменные на НЕ равенство?
« Ответ #5 : 04 Октября 2002, 15:09:45 »
Цитировать
if( $variable =~ /$string/ )
{
    print "В переменной есть требуемая строка";
}

А как, нет подстроки?
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Как сравнить 2 переменные на НЕ равенство?
« Ответ #6 : 04 Октября 2002, 15:14:13 »
Цитировать
Не катит. :-(

а просто проверить что там записана строка NULL нельзя?
print "NULL" if $ary[4] =~ /^null$/i;
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Как сравнить 2 переменные на НЕ равенство?
« Ответ #7 : 04 Октября 2002, 15:16:18 »
Цитировать
А как, нет подстроки?



if( $variable =~ /$string/ )
{
    print "В переменной есть требуемая строка";
}
else
{
    print "Подстроки нет";
}
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Как сравнить 2 переменные на НЕ равенство?
« Ответ #8 : 04 Октября 2002, 15:20:45 »
Да без else.
Мне надо в сочетании с др. условиями.
И, кстати, так правильно
if (условие1 || условие2) ... #условие1 или условие2
if (условие1 && условие2) ... #условие1 и условие2
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Как сравнить 2 переменные на НЕ равенство?
« Ответ #9 : 04 Октября 2002, 15:24:53 »
[off]
Цитировать
Мне надо в сочетании с др. условиями.

сформулируй нормально задачу,  а то тебе сегодня надо, завтра - нет.[/off]
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Как сравнить 2 переменные на НЕ равенство?
« Ответ #10 : 04 Октября 2002, 15:25:47 »
print $ary[4];#{пусто}

а начинешь проверять
if ($ary[4] eq \'\') {print "1\\n\\n

";} else {print "0\\n\\n

";}#0

И, кстати, как правильно
$ary[4] или @ary[4]
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Как сравнить 2 переменные на НЕ равенство?
« Ответ #11 : 04 Октября 2002, 15:28:25 »
Цитировать
сформулируй нормально задачу

Как определить нет ли в переменной определённой подстроки и др. переменная пуста?
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Как сравнить 2 переменные на НЕ равенство?
« Ответ #12 : 04 Октября 2002, 15:30:31 »
Цитировать
if ($ary[4] eq \'\') {print "1\\n\\n

";} else {print "0\\n\\n

";}#0

должно выводить 1. скопируй эту строку и запусти на исполнение. сам увидишь чего получится.

$ary[4] - обращение к пятому элементу массива. если тебе это требовалось :)
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как сравнить 2 переменные на НЕ равенство?
« Ответ #13 : 04 Октября 2002, 15:32:10 »
Цитировать
Как определить нет ли в переменной определённой подстроки и др. переменная пуста?


А скомбинировать предыдущие ответы? :D
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Как сравнить 2 переменные на НЕ равенство?
« Ответ #14 : 04 Октября 2002, 15:34:17 »
Да да. Сори. Сам впарился.
Все ок.
if (defined($ary[4])) {print "4 - определена\\n\\n

";} else {print "4 - не определена\\n\\n

";}
if ($ary[4] eq \'\') {print "4 - пуста\\n\\n

";} else {print "4 - не пуста\\n\\n

";}


###
4 - не определена

4 - пуста
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

 

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