С каких это пор PHP автоматически передает целочисленные значения? - PullRequest
1 голос
/ 25 июня 2010
echo 1/3;

Я ожидал, что выше будет выводить 0, но на самом деле PHP достаточно умен, чтобы вывести 0.33333333333333

С каких пор PHP начинает вести себя так?

Ответы [ 3 ]

12 голосов
/ 25 июня 2010

Он всегда так себя вел.См .: http://php.net/manual/en/language.operators.arithmetic.php

Оператор деления ("/") возвращает значение с плавающей запятой, если только два операнда не являются целыми числами (или строками, которые преобразуются в целые числа), а числа делятся равномерно, в которыхслучай, когда будет возвращено целое значение.

1 голос
/ 25 июня 2010

PHP не является строго типизированным языком.Он все время так делает.

Насколько я знаю, php изначально разрабатывался таким образом.

0 голосов
/ 25 июня 2010

Я бы сказал, что это ожидаемое поведение.

Если вы хотите получить целое число, используйте приведение:

echo (int)(1/3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...