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
Форумы портала PHP.SU :: Версия для печати :: Почему [+] НЕ [+]?
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Почему [+] НЕ [+]?

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

1. I_CaR - 28 Июля, 2011 - 07:23:33 - перейти к сообщению
Доброго здравия всем!
Вопрос по простым Арифметическим операторам
Пример:
PHP:
скопировать код в буфер обмена
  1. $a =3;
  2. $b =7;
  3. $c = $a + $b; //выводим через третью переменную
  4. print "a + b= ".$c; //Сработает
  5. print "a + b= ".$a+$b; //НЕ сработает (!!!) и не отобразиться "a + b= "
  6. print "a * b= ".$a*$b; //Сработает


Почему так? [+] или [-] на через оператор print не работают, а
  • или [/] работают?
  • 2. DeepVarvar - 28 Июля, 2011 - 07:42:47 - перейти к сообщению
    Используйте одинарные кавычки.
    3. I_CaR - 28 Июля, 2011 - 08:26:19 - перейти к сообщению
    DeepVarvar пишет:
    Используйте одинарные кавычки.

    Бред!
    Сам пробовал, что сказал? разница = 0!
    Я просил не ошибки искать, а разъяснить.
    ЗЫ Одинарный кавычки используюю в HTML при интеграции его в PHP.
    4. Мелкий - 28 Июля, 2011 - 08:52:06 - перейти к сообщению
    Приоритет конкатенации, видимо, выше, чем сложения. Берите в скобки.
    5. ugin_root - 28 Июля, 2011 - 08:59:01 - перейти к сообщению
    I_CaR
    глупый вопрос!
    какие операторы имеют приоритет?
    "a + b= ".$a+$b
    1)"a + b= ".$a
    так как следующий опереатор это стожение и (integer)"a + b= 3" == 0 то:
    2)0+7==7

    "a * b= ".$a*$b;
    1)$a*$b == 21
    2)"a * b= ".21

    и как повысить приоритет оператора??? естественно взять в скабки!
    print "a + b= ".($a+$b);
    (Добавление)
    Мелкий
    приоритет одинаковый но как и в школе вычисления в PHP идут слева направо.
    6. I_CaR - 28 Июля, 2011 - 09:07:44 - перейти к сообщению
    to: Мелкий Спасибо! хоть прояснилась ситуация.
    Мелкий пишет:
    Приоритет конкатенации, видимо, выше, чем сложения. Берите в скобки.

    Хм... все верно...
    Сработало...
    Ну блин, и тяжёлый же язык (PHP) для логического понимания...
    7. DeepVarvar - 28 Июля, 2011 - 09:17:08 - перейти к сообщению
    I_CaR пишет:
    Бред
    Не проснулся... Радость
    8. Мелкий - 28 Июля, 2011 - 09:18:58 - перейти к сообщению
    ugin_root пишет:
    приоритет одинаковый но как и в школе вычисления в PHP идут слева направо.

    Да, действительно, равный приоритет.
    9. I_CaR - 28 Июля, 2011 - 09:42:34 - перейти к сообщению
    to: ugin_root
    ugin_root пишет:
    глупый вопрос!
    какие операторы имеют приоритет?

    Ни чего не глупый.
    Чего же сразу не ответить по теории PHP тогда тебе?
    "Приоритеты вычислений"
    Читаем что писал "Владимир Водолазкий - Эфективная работа PHP4"
    Оператор — Ассоциативность
    print — right
    + - . — left
    ----------
    Ну и всё равно не понятно, почему как в школе он и не сложил? а вывел переменную, стирая стринг...
    (PHP теорию не проходил (практика web-технологий вынуждает прибегать к нему), изучал Pascal, там как-то яснее, понятнее [+] если он оператор, то он делает +!)
    10. DlTA - 28 Июля, 2011 - 11:30:30 - перейти к сообщению
    I_CaR, ну так сказали же, приоритет, но в данном случае между операторами "+" и "."

    у точки приоритет выше, так как идет раньше
    вот в и тоге и получается что конечные действие выглядят следующе:
    print "строка"+$число;

     

    Powered by ExBB FM 1.0 RC1