]> granicus.if.org Git - php/commitdiff
Fixed bug #62931 & #62932
authorXinchen Hui <laruence@php.net>
Sun, 26 Aug 2012 03:37:05 +0000 (11:37 +0800)
committerXinchen Hui <laruence@php.net>
Sun, 26 Aug 2012 03:37:05 +0000 (11:37 +0800)
Zend/zend_compile.c

index b87b1908b6bdebdf4fd1efce18da0b9667ec8477..6efc1e17bb6705b5d8de314076574f1442877c7e 100644 (file)
@@ -6283,8 +6283,13 @@ void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token
                opline->extended_value |= ZEND_FE_FETCH_WITH_KEY;
        }
 
-       if ((key->op_type != IS_UNUSED) && (key->EA & ZEND_PARSED_REFERENCE_VARIABLE)) {
+       if ((key->op_type != IS_UNUSED)) {
+       if (key->EA & ZEND_PARSED_REFERENCE_VARIABLE) {
                zend_error(E_COMPILE_ERROR, "Key element cannot be a reference");
+       }
+       if (key->EA & ZEND_PARSED_LIST_EXPR) {
+               zend_error(E_COMPILE_ERROR, "Cannot use list as Key element");
+       }
        }
 
        if (value->EA & ZEND_PARSED_REFERENCE_VARIABLE) {