Skip to content

Commit cb9b5c1

Browse files
committed
Fix #[\Deprecated] for the constant() function
1 parent 0df51e9 commit cb9b5c1

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

Zend/tests/attributes/deprecated/018.phpt

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,33 @@ class Foo {
1616
public const TEST = 1;
1717

1818
#[\Deprecated()]
19-
public const TEST2 = 1;
19+
public const TEST2 = 2;
2020

2121
#[\Deprecated("use Clazz::TEST instead")]
22-
public const TEST3 = 1;
22+
public const TEST3 = 3;
23+
24+
#[\Deprecated]
25+
public const TEST4 = 4;
26+
27+
#[\Deprecated]
28+
public const TEST5 = 5;
2329
}
2430

25-
Foo::TEST;
26-
Foo::TEST2;
27-
Foo::TEST3;
31+
var_dump(Foo::TEST);
32+
var_dump(Foo::TEST2);
33+
var_dump(Foo::TEST3);
34+
35+
var_dump(constant('Foo::TEST4'));
36+
var_dump(defined('Foo::TEST5'));
2837

2938
?>
3039
--EXPECT--
3140
Constant Foo::TEST is deprecated
41+
int(1)
3242
Constant Foo::TEST2 is deprecated
43+
int(2)
3344
Constant Foo::TEST3 is deprecated, use Clazz::TEST instead
45+
int(3)
46+
Constant Foo::TEST4 is deprecated
47+
int(4)
48+
bool(true)

Zend/zend_constants.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ ZEND_API zval *zend_get_class_constant_ex(zend_string *class_name, zend_string *
354354

355355
if (UNEXPECTED(ZEND_CLASS_CONST_FLAGS(c) & ZEND_ACC_DEPRECATED)) {
356356
if ((flags & ZEND_FETCH_CLASS_SILENT) == 0) {
357-
zend_error(E_DEPRECATED, "Constant %s::%s is deprecated", ZSTR_VAL(class_name), ZSTR_VAL(constant_name));
357+
zend_deprecated_class_constant(c, constant_name);
358358
if (EG(exception)) {
359359
goto failure;
360360
}

0 commit comments

Comments
 (0)