--- /dev/null
+--TEST--
+Bug #69754 (Use of ::class inside array causes compile error)
+--FILE--
+<?php
+
+class Example {
+ public function test() {
+ var_dump(static::class);
+ var_dump(static::class . 'IsAwesome');
+ var_dump(static::class . date('Ymd'));
+ var_dump([static::class]);
+ }
+}
+
+(new Example)->test();
+
+?>
+--EXPECTF--
+string(7) "Example"
+string(16) "ExampleIsAwesome"
+string(15) "Example%d"
+array(1) {
+ [0]=>
+ string(7) "Example"
+}
zend_ast *name_ast = ast->child[1];
zend_string *resolved_name;
- if (zend_try_compile_const_expr_resolve_class_name(&result, class_ast, name_ast, 1)) {
- break;
+ if (zend_try_compile_const_expr_resolve_class_name(&result, class_ast, name_ast, 0)) {
+ if (Z_TYPE(result) == IS_NULL) {
+ return;
+ } else {
+ break;
+ }
}
zend_eval_const_expr(&class_ast);