summaryrefslogtreecommitdiff
path: root/ext/reflection/php_reflection.c
diff options
context:
space:
mode:
authorSebastian Bergmann <sebastian@php.net>2004-07-19 19:14:10 +0000
committerSebastian Bergmann <sebastian@php.net>2004-07-19 19:14:10 +0000
commit045d395d4a994524e3dffeec1b757486cbe3cc00 (patch)
treed1a4b086a227bad7d81b9c1462e1ea6f80bc63f5 /ext/reflection/php_reflection.c
parent32e125e2b87f8381064deb35908d40d8f19ac948 (diff)
downloadphp-git-045d395d4a994524e3dffeec1b757486cbe3cc00.tar.gz
Make ReflectionClass::getMethod() and ReflectionClass::getProperty() raise an ReflectionException instead of returning NULL on failure.
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r--ext/reflection/php_reflection.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index 4ea63eb206..1ead14f09c 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -2152,7 +2152,7 @@ ZEND_METHOD(reflection_class, getConstructor)
}
/* }}} */
-/* {{{ proto public ReflectionMethod Reflection_Class::getMethod(string name)
+/* {{{ proto public ReflectionMethod Reflection_Class::getMethod(string name) throws ReflectionException
Returns the class' method specified by it's name */
ZEND_METHOD(reflection_class, getMethod)
{
@@ -2172,7 +2172,9 @@ ZEND_METHOD(reflection_class, getMethod)
if (zend_hash_find(&ce->function_table, name, name_len + 1, (void**) &mptr) == SUCCESS) {
reflection_method_factory(ce, mptr, return_value TSRMLS_CC);
} else {
- RETURN_NULL();
+ zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC,
+ "Method %s does not exist", name);
+ return;
}
}
/* }}} */
@@ -2221,7 +2223,7 @@ ZEND_METHOD(reflection_class, getMethods)
}
/* }}} */
-/* {{{ proto public ReflectionProperty Reflection_Class::getProperty(string name)
+/* {{{ proto public ReflectionProperty Reflection_Class::getProperty(string name) throws ReflectionException
Returns the class' property specified by it's name */
ZEND_METHOD(reflection_class, getProperty)
{
@@ -2240,7 +2242,9 @@ ZEND_METHOD(reflection_class, getProperty)
if (zend_hash_find(&ce->properties_info, name, name_len + 1, (void**) &property_info) == SUCCESS) {
reflection_property_factory(ce, property_info, return_value TSRMLS_CC);
} else {
- RETURN_NULL();
+ zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC,
+ "Property %s does not exist", name);
+ return;
}
}
/* }}} */