Hello all. Attached is a patch to tweak expected parameter message a little.
Currently: [EMAIL PROTECTED] 5.2$ sapi/cli/php -c php.ini -r '$obj = new DateTime; timezone_name_get($obj);' PHP Warning: timezone_name_get() expects parameter 1 to be DateTimeZone, object given in Command line code on line 1 After the patch: [EMAIL PROTECTED] 5.2$ sapi/cli/php -c php.ini -r '$obj = new DateTime; timezone_name_get($obj);' PHP Warning: timezone_name_get() expects parameter 1 to be DateTimeZone, DateTime object given in Command line code on line 1 That is, if given parameter is object we print its type out too. -Hannes
Index: Zend/zend_API.c =================================================================== RCS file: /repository/ZendEngine2/zend_API.c,v retrieving revision 1.296.2.27.2.22 diff -u -r1.296.2.27.2.22 zend_API.c --- Zend/zend_API.c 25 Jul 2006 06:49:38 -0000 1.296.2.27.2.22 +++ Zend/zend_API.c 10 Sep 2006 21:56:27 -0000 @@ -621,9 +621,15 @@ char *space; char *class_name = get_active_class_name(&space TSRMLS_CC); - zend_error(E_WARNING, "%s%s%s() expects parameter %d to be %s, %s given", + if(Z_TYPE_PP(arg) == IS_OBJECT) { + zend_error(E_WARNING, "%s%s%s() expects parameter %d to be %s, %s object given", + class_name, space, get_active_function_name(TSRMLS_C), arg_num, expected_type, + Z_OBJCE_PP(arg)->name); + } else { + zend_error(E_WARNING, "%s%s%s() expects parameter %d to be %s, %s given", class_name, space, get_active_function_name(TSRMLS_C), arg_num, expected_type, zend_zval_type_name(*arg)); + } } return FAILURE; }
Index: Zend/zend_API.c =================================================================== RCS file: /repository/ZendEngine2/zend_API.c,v retrieving revision 1.400 diff -u -r1.400 zend_API.c --- Zend/zend_API.c 28 Aug 2006 17:14:49 -0000 1.400 +++ Zend/zend_API.c 10 Sep 2006 22:00:02 -0000 @@ -826,9 +826,15 @@ char *space; zstr class_name = get_active_class_name(&space TSRMLS_CC); - zend_error(E_WARNING, "%v%s%v() expects parameter %d to be %R, %s given", + if(Z_TYPE_PP(arg) == IS_OBJECT) { + zend_error(E_WARNING, "%v%s%v() expects parameter %d to be %R, %v object given", + class_name, space, get_active_function_name(TSRMLS_C), arg_num, ret_type, expected_type, + Z_OBJCE_PP(arg)->name); + } else { + zend_error(E_WARNING, "%v%s%v() expects parameter %d to be %R, %s given", class_name, space, get_active_function_name(TSRMLS_C), arg_num, ret_type, expected_type, zend_zval_type_name(*arg)); + } } return FAILURE; }
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php