summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2007-10-01 11:25:14 +0000
committerDmitry Stogov <dmitry@php.net>2007-10-01 11:25:14 +0000
commit0625e266cd1da156afb59711aaa9b3c758b3fa9e (patch)
tree3e4da7b638d7e29870342e620ef78f55820fe04b /Zend
parent41e9b6b61c33d0a3d8bdb00f4c139e4af3e72807 (diff)
downloadphp-git-0625e266cd1da156afb59711aaa9b3c758b3fa9e.tar.gz
Late Static Binding make no sense in compile-time constants.
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_compile.c6
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);