<?php
$a = '3.00';
echo $a.' - текст '. $a+0 .' - число <br />';
echo $a+0 .' - число '.$a.' - текст <br />';
?>
получаю
<?php
$a = '3.00';
echo $a.' - текст '. $a+0 .' - число <br />';
echo $a+0 .' - число '.$a.' - текст <br />';
?>
Цитата |
3 - число 3 - число 3.00 - текст |
Цитата |
3.00 - текст 3 - число 3 - число 3.00 - текст |
echo $a+1 .' - текст '. $a+0 .' - число <br />';
Цитата |
4 - число |
$a = '3.00';
echo $a.' - текст '.($a+0).' - число <br />';
echo ($a+0).' - число '.$a.' - текст <br />';
Цитата |
A word of caution - the dot operator has the same precedence as + and -, which can yield unexpected results. |
$a+0 .' - число <br />';сначала может происходить конкатенация нуля со строкой, а только потом сложение с $a. И никакой магии.
echo (($a.(' - текст '. $a))+0) .' - число <br />';// Теперь результат "3 - число" не кажется странным, не так ли?
$a = '3.00';
echo $a.' - текст '. ($a+0) .' - число <br />';
echo $a+0 .' - число '.$a.' - текст <br />';
Цитата |
У операторов с равным приоритетом левая ассоциативность подразумевает, что выражение вычисляется слева направо, правая ассоциативность, соответственно, подразумевает противоположный порядок. |
Цитата |
У операторов с равным приоритетом левая ассоциативность подразумевает, что выражение вычисляется слева направо, правая ассоциативность, соответственно, подразумевает противоположный порядок. |
echo ((($a.' - текст '). $a)+0) .' - число <br />';