Solution:
They are generally interchangeable because PHP uses automatic type conversion and a variable’s type is determined by the context in which the variable is used.
Some differences are that strval($var)
will return the string value of $var
while (string)$var
is explicitly converting the “type” of $var
during evaluation.
Also, from the manual for strval()
:
$var
may be any scalar type or an object that implements the__toString
method. You cannot usestrval()
on arrays or on objects that do not implement the__toString
method.
As mentioned by @Lars (string)
is generally faster.