Browse Source

Merge branch 'Bug-62328' of https://github.com/leight/php-src

pull/163/head
Xinchen Hui 14 years ago
parent
commit
d11fa44d62
  1. 22
      Zend/tests/bug62328.phpt
  2. 6
      Zend/zend.c

22
Zend/tests/bug62328.phpt

@ -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
__toString

6
Zend/zend.c

@ -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;

Loading…
Cancel
Save