PHP строка приведение против функции strval, что я должен использовать? - PullRequest
22 голосов
/ 10 сентября 2011

В чем разница между приведением строки и strval в php?

  1. strval($value);

  2. (string)$value;

Ответы [ 3 ]

22 голосов
/ 10 сентября 2011

http://www.php.net/manual/en/language.types.string.php#language.types.string.casting

Значение можно преобразовать в строку, используя приведение (string) или функцию strval ().

Выглядит то же самое для меня.

5 голосов
/ 10 сентября 2011

Один - это вызов функции, другой - внутренний тип. Не проверив, я бы предположил, что последний быстрее на несколько циклов, но на самом деле не должен иметь значения.

4 голосов
/ 10 сентября 2011

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

Некоторые различия заключаются в том, что strval($var) вернет строковое значение $var, тогда как (string)$var явно преобразует "тип" $var во время оценки.

Также из руководства для strval():

$var может быть любым скалярным типом или объектом, реализующим метод __toString. Вы не можете использовать strval() для массивов или объектов, которые не реализуют метод __toString.

Как уже упоминалось @Lars (string), как правило, быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...