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 » PHP » Программирование на PHP » Что-то не так с переменной

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

1. sairus.ua - 01 Августа, 2010 - 12:37:05 - перейти к сообщению
Через simplexml получаю 2 переменных, потом их перемножаю с остальными переменными.
PHP:
скопировать код в буфер обмена
  1.  
  2. echo($price."<br>".$credit."<br>".$myprice."<br>".$dollar_curs); // выводит 0.53    0.05    1.5   8
  3. echo($price*$credit*$myprice*$dollar_curs);  выводит 0
  4.  



Почему при перемножении выводится 0 ????? Ведь переменные содержат ненулевые значения
2. Champion - 01 Августа, 2010 - 12:45:45 - перейти к сообщению
Не верю.
PHP:
скопировать код в буфер обмена
  1. var_dump($price);
  2. var_dump($dollar_curs);
  3. var_dump($credit);
  4. var_dump($myprice);
  5. var_dump($price * $credit * $myprice * $dollar_curs);

Прям скопируй и скажи, что будет
3. sairus.ua - 01 Августа, 2010 - 13:13:51 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. float(0.05) int(8) object(SimpleXMLElement)#2 (1) { [0]=>  string(4) "0.53" } string(3) "1.5" float(0)
  3.  



Я понял, что это значит. Я множил на строку. Вот почему только $credit строка, если я в начала, создавая глобальную переменную $credit прописал: settype($credit,"float");

Как в таком случае конвертировать эту переменную в float?


P.S. Благодарю за оказанную помощь!
4. Champion - 01 Августа, 2010 - 13:22:46 - перейти к сообщению
Да, в общем-то, string, если он не содержит левых символов, к числовым типам обычно приводится сам собой без проблем. У меня было подозрение, что там всякие символы перевода строки перед цифрами или еще что-то. Тогда можно просто обработать строку с пом. trim().

Но из приведенного листинга видно, что одна из переменных - это вообще объект... Умножение на объект же ж не изобрели еще.
5. sairus.ua - 01 Августа, 2010 - 13:33:06 - перейти к сообщению
Спасибо!
6. JustUserR - 01 Августа, 2010 - 13:54:42 - перейти к сообщению
Champion пишет:
Умножение на объект же ж не изобрели еще.
В этом плане удобны языки программирования объекты в которых являются наследниками некоторой базовой структуры которая содержит для них общие свойства и методы такие как toString - это позволяет в некотором плане переопределять операторы в зависимости от числового или строкового контекста

 

Powered by ExBB FM 1.0 RC1