diff options
author | Dmitry Stogov <dmitry@php.net> | 2007-10-01 11:25:14 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2007-10-01 11:25:14 +0000 |
commit | 0625e266cd1da156afb59711aaa9b3c758b3fa9e (patch) | |
tree | 3e4da7b638d7e29870342e620ef78f55820fe04b /Zend | |
parent | 41e9b6b61c33d0a3d8bdb00f4c139e4af3e72807 (diff) | |
download | php-git-0625e266cd1da156afb59711aaa9b3c758b3fa9e.tar.gz |
Late Static Binding make no sense in compile-time constants.
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_compile.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index ba906696a9..92f0be6290 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -3461,7 +3461,11 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con switch (mode) { case ZEND_CT: if (constant_container) { - if (ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant))) { + int type = zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant)); + + if (ZEND_FETCH_CLASS_STATIC == type) { + zend_error(E_ERROR, "\"static::\" is not allowed in compile-time constants"); + } else if (ZEND_FETCH_CLASS_DEFAULT == type) { zend_resolve_class_name(constant_container, &fetch_type, 1 TSRMLS_CC); } zend_do_fetch_class_name(NULL, constant_container, constant_name TSRMLS_CC); |