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]   

> Описание: В рот мне ноги, по другому не сказать!
molchun201
Отправлено: 03 Марта, 2011 - 22:33:09
Post Id



Посетитель


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


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




Не понял
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     $a = 1;
  4.     $b = 2;
  5.    
  6.     if($a > 0 and $b > 0){
  7.         echo "Положительное ". $a + $b;
  8.     }
  9. ?>
  10. // У меня на выходе 2!!!
  11.  


А вот так уже всё работает как надо:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     $a = 1;
  4.     $b = 2;
  5.    
  6.     if($a > 0 and $b > 0){
  7.         echo "Положительное ";
  8.         echo $a + $b;
  9.     }
  10. ?>
  11.  


Что это было? Растерялся
Может знамение 2 пришествия? Не понял Растерялся Улыбка


-----
Обрамляйте код тегами и читайте
 
 Top
tont
Отправлено: 03 Марта, 2011 - 22:39:40
Post Id



Новичок


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


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




Попробуйте
PHP:
скопировать код в буфер обмена
  1.  $a = 1;
  2.     $b = 2;
  3.    
  4.     if($a > 0 and $b > 0){
  5.         echo "Положительное ". ($a + $b);
  6.     }
 
 Top
molchun201
Отправлено: 03 Марта, 2011 - 22:41:25
Post Id



Посетитель


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


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




tont мне бы узнать почему не работало без скобок Улыбка Растерялся


-----
Обрамляйте код тегами и читайте
 
 Top
tont
Отправлено: 03 Марта, 2011 - 22:44:24
Post Id



Новичок


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


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




PHP не в курсе, что делать с переменными различного типа.
Или сложить $a и $b, или объединить вывод.
 
 Top
molchun201
Отправлено: 03 Марта, 2011 - 22:53:05
Post Id



Посетитель


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


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




tont пишет:
PHP не в курсе, что делать с переменными различного типа.

как это различного?
они же явно указаны:



-----
Обрамляйте код тегами и читайте
 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Марта, 2011 - 22:53:55
Post Id



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


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


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




У конкатенации приоритет выше (как у умножения)
 
 Top
molchun201
Отправлено: 03 Марта, 2011 - 22:56:36
Post Id



Посетитель


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


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




DeepVarvar точно, даж как то и не подумал Закатив глазки
спс магистр ёда Улыбка


-----
Обрамляйте код тегами и читайте
 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Марта, 2011 - 22:59:45
Post Id



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


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


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




molchun201 пишет:
магистр ёда

Радость Радость Радость
 
 Top
OrmaJever Модератор
Отправлено: 03 Марта, 2011 - 23:00:34
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




объеденю ответы tont и DeepVarvar
php не умеет читать мысли и делает как запланировано, вначале обьеденяет строки и получается
CODE (htmlphp):
скопировать код в буфер обмена
  1. "Положительное 1" + $b

и в итогде string + int получается бред. Поэтому скобки очень полезная вещь Подмигивание


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Мелкий Супермодератор
Отправлено: 03 Марта, 2011 - 23:12:53
Post Id



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


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


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




DeepVarvar пишет:
У конкатенации приоритет выше (как у умножения)

не совсем, равный приоритет. Исполнение идёт по порядку слева направо.

выведет 3строка


-----
PostgreSQL DBA
 
 Top
JustUserR
Отправлено: 04 Марта, 2011 - 12:22:35
Post Id



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


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


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




molchun201 пишет:
Мне бы узнать почему не работало без скобок
Осуществление исполнение предполагаемой конструкции, с учетом приоритетов вложенных операций производится следующим образом: первочально интерпретатор PHP осуществляет просмотр выделенных лексем данног блока кода, включающих в себя встроенные функциональные объекты, а также константные информационные поля, и производит анализ рассчитываемого выражения для функции echo, который в случае отсутствие круглых скобок является единственным последующим exression-элементом


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 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