@ -0,0 +1,22 @@
--TEST--
Bug #62328 (cast_object takes precedence over __toString)
--FILE--
<?php
class SplFileInfo62328 extends SplFileInfo
{
public function __toString()
return '__toString';
}
$fi = new SplFileInfo62328(__FILE__);
echo (string)$fi . PHP_EOL;
echo (string)$fi->__toString() . PHP_EOL;
?>
--EXPECT--
__toString
@ -258,6 +258,12 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop
TSRMLS_FETCH();
if (Z_OBJCE_P(expr)->__tostring) {
if (zend_std_cast_object_tostring(expr, expr_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
break;
if (Z_OBJ_HANDLER_P(expr, cast_object)) {
zval *val;