2016-02-23 3 views
1

я написал только эту линию, и ничего в моем PHP тестовый файл:Confused о результате

<?php 
echo $y = 13 +'15%'+'$25' ; 
?> 

и это дает результат: 28.

я не понял, Что логика за этим , кто-нибудь, пожалуйста, опишите это вкратце.

ответ

2

PHP пытается рассматривать их как числовые. И он может для первых двух, отбрасывая нечисловой символ %.

Для третьей части, однако, она начинается с символа строки и полностью игнорируется.

Попробуйте так:

echo 13 + "15%" + "5foobar" + 7; // 40 
+0

Это не то, что происходит. Он переводит каждое значение из заданного типа данных в числовое. Таким образом, он не останавливается на%. Он просто переводит «15%» на 15. Он действительно смотрит на «25 долларов США» и меняет это на ноль. – kainaw

2

PHP признает, что каждое значение должно быть числовым. 13 - числовое. '15% 'автоматически изменяется на число, равное 15. PHP не понимает «процент» и не делает его 0.15. '$ 25' - буквальная строка $ 25. Если вы набрали «25 долларов США», это будет значение переменной для 25 долларов США, и оно будет жаловаться на то, что 25 не является допустимым именем переменной (должно начинаться с буквы или подчеркивания). Таким образом, он не может быть переведен на числовое значение. Он становится равным нулю. Ваш результат равен 13 + 15 + 0.

1

Php распознает только первое число в вашей строке. Попробуйте следующее:

$res1=1+'2a'+'a15'; //3 
$res2=1+'2b'+'3b5'; //5 is ignored.result is 6