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. Master_pascal - 09 Января, 2013 - 12:03:48 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a="5";
  3. $b=5;
  4. echo $a+$b;
  5. ?>
  6.  


Почему результат 10?здесь же $a строка помоему
2. EuGen - 09 Января, 2013 - 12:05:09 - перейти к сообщению
Потому что у оператора сложения операнды - числового типа, и, вследствие этого, после применения этого оператора, результат получается числовым, а операнды, до применения сложения, также приводятся к числовому типу.
3. Master_pascal - 09 Января, 2013 - 12:09:00 - перейти к сообщению
а зачем тогда нужныэти функций settype($a,'integer')
4. EuGen - 09 Января, 2013 - 12:12:52 - перейти к сообщению
Чтобы наверняка быть уверенными в том, какого типа стала переменная. Это в Вашем примере все линейно просто - Вы видите и место объявления переменных, и строку с операцией. В общем случае это почти всегда не так - переменные приходят, например, как параметры и их тип может меняться во время исполнения (что, в общем-то, нежелательно с точки зрения логики, но тем не менее, язык это позволяет).
5. Okula - 09 Января, 2013 - 12:13:06 - перейти к сообщению
Master_pascal, в PHP нет жёсткой типизации как, например, в C или C++.
6. Master_pascal - 09 Января, 2013 - 12:17:17 - перейти к сообщению
понятно ,спасибо

 

Powered by ExBB FM 1.0 RC1