Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Логический оператор "и"

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Replicant
Отправлено: 18 Декабря, 2009 - 18:27:27
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Доброе время суток!

Как в php правилно прописывается логический оператор "и"?
Пробовал так
CODE (text):
скопировать код в буфер обмена
  1. if ((!$p == "") and (!$n == "")) :

и так
CODE (text):
скопировать код в буфер обмена
  1. if ((!$p == "") && (!$n == "")) :

везде одна ошибка: Parse error: syntax error, unexpected T_LOGICAL_AND

Понимаю вопрос тупой но спросить больше неукого, нагуглил 1 пример так там так же как и я написал.

(Отредактировано автором: 18 Декабря, 2009 - 18:28:47)

 
 Top
JustUserR
Отправлено: 18 Декабря, 2009 - 18:36:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Replicant Правильно будет вот так
Не надо отрицание ! ставить перед самой переменной $p так как тогда отрицается не логическое выражение а перменная что является не тем - используйте скобки или в данном случае просто !=
И почему опять Pythonовское двоеточие? Откуда вы это понабрали? Здесь же обычные фигурные скобки как блок кода

(Отредактировано автором: 18 Декабря, 2009 - 18:39:03)



-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Replicant
Отправлено: 18 Декабря, 2009 - 18:42:31
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




JustUserR пишет:
Replicant Правильно if((!($p==""Подмигивание)&&(!($n==""Подмигивание)) {}


Вобще то и так не пашет
 
 Top
EuGen Администратор
Отправлено: 18 Декабря, 2009 - 18:44:17
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Не хочется Вас расстраивать, но http://phpfaq[dot]ru/debug


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Replicant
Отправлено: 18 Декабря, 2009 - 18:52:56
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




JustUserR пишет:
И почему опять Pythonовское двоеточие? Откуда вы это понабрали?


Да вобщем то мне привычнее такой синтаксис, более похож на Delphi, знал бы Си то тогда я думаю было бы удобно писать {}.
Цитата:
Не хочется Вас расстраивать, но http://phpfaq.ru/debug

Я не думаю что это поможет решить конкретно эту проблему, четко вылетает ошибка в которой четко написано "синтаксическая ошибка не в том месте воткнул and". Как он правильно применяется в php я не знаю так как опыта в этом не имею, пример 1 нашел но там так же как написал я. Что то значит не так, вот и спрашиваю что именно у людей которые знают всякие примудрости php.

(Отредактировано автором: 18 Декабря, 2009 - 19:01:27)

 
 Top
PHPLamer
Отправлено: 19 Декабря, 2009 - 18:17:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Сент. 2008  
Откуда: Russia, Krasnodar


Помог: 2 раз(а)




На мой взгляд отрицание в данном случаем можно заменить так:

PHP:
скопировать код в буфер обмена
  1. if (($p <> "") and ($n <> "")) {
  2.  
  3. }

Радость 100% работает

(Отредактировано автором: 19 Декабря, 2009 - 18:17:28)

 
 Top
Монстр_11111
Отправлено: 19 Декабря, 2009 - 18:45:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




PHPLamer отрицание <> ты скорее всего увидел в учебнике sql , а в пхп отрицание !=
(Добавление)
Дополню , это отрицание всмысле - не труе=>фалсе , а "не равно" ) как то так
 
 Top
Мелкий Супермодератор
Отправлено: 19 Декабря, 2009 - 19:13:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Монстр_11111, я вот тоже не поверил в <>, однако работает Не понял
Хотя синтаксически более верно !=

А по поводу исходного вопроса темы:
у меня даже работают:
PHP:
скопировать код в буфер обмена
  1. if ((!$p == "") and (!$n == "")) echo "работает";
  2.  

PHP:
скопировать код в буфер обмена
  1. if ((!$p == "") and (!$n == "")) :
  2. echo "работает";
  3. endif;

Ну и более синтаксически правильные конструкции - тем более:

PHP:
скопировать код в буфер обмена
  1. if (!($p == "") and !($n == ""))


-----
PostgreSQL DBA
 
 Top
Champion Супермодератор
Отправлено: 19 Декабря, 2009 - 19:25:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Мелкий пишет:
Хотя синтаксически более верно !=
Что это значит?
 
 Top
Ch_chov
Отправлено: 19 Декабря, 2009 - 19:31:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




<> и != это одно и тоже, хотя сравнение строк на больше/меньше выглядит немного не логично
http://php.su/learnphp/operators/?compar


JustUserR пишет:
И почему опять Pythonовское двоеточие? Откуда вы это понабрали?

Наверно отсюда


PHP:
скопировать код в буфер обмена
  1. if($p && $n): echo 'TRUE';
  2. else: echo 'FALSE';
  3. endif;
 
 Top
Мелкий Супермодератор
Отправлено: 19 Декабря, 2009 - 20:28:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Champion пишет:
Что это значит?

хм, это значит что надо было всё-таки перечитать ман по операторам Недовольство, огорчение Я что-то пропустил там оператор <>


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB