Hello Adam, Thursday, January 15, 2004, 7:04:09 PM, you wrote:
> Question: > Given an object, $obj, should strval($obj) and settype($obj, 'string') > return $obj->__toString() if it exists? > They currently do not, but (string) $obj does. > Are these three operations supposed to be identical, but with > different syntax? Or are there other differences among them? Looking at the docs i found this: Converting to string You can convert a value to a string using the (string) cast, or the strval() function. String conversion is automatically done in the scope of an expression for you where a string is needed. This happens when you use the echo() or print() functions, or when you compare a variable value to a string. Reading the manual sections on Types and Type Juggling will make the following clearer. See also settype(). That means strval($x) is equal to (string)$x. Looking at settype() i found this: bool settype ( mixed var, string type) Set the type of variable var to type. [...] See also gettype(), type-casting and type-juggling. That does not sound like typecasting but it dosn't sound like no typecasting being involved too. In other words it is unclear. Looking at TypeJuggling i found: If you wish to force a variable to be evaluated as a certain type, see the section on Type casting. If you wish to change the type of a variable, see settype(). This sounds more like no typecasting but like a string representation. Which could be result of __toString() as well as a text like 'object of type ...' or somthing similar. So i'd go for strval() calling __tostring() and hearing some other meanings on settype(). -- Best regards, Marcus mailto:[EMAIL PROTECTED] -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php