Как правило, они взаимозаменяемы, поскольку PHP использует автоматическое преобразование типов, а тип переменной определяется контекстом, в котором используется переменная.
Некоторые различия заключаются в том, что strval($var)
вернет строковое значение $var
, тогда как (string)$var
явно преобразует "тип" $var
во время оценки.
Также из руководства для strval()
:
$var
может быть любым скалярным типом или объектом, реализующим метод __toString
. Вы не можете использовать strval()
для массивов или объектов, которые не реализуют метод __toString
.
Как уже упоминалось @Lars (string)
, как правило, быстрее.