Skip to content

Commit 4dd66b8

Browse files
committed
Merge branch 'PHP-8.1'
* PHP-8.1: Fixed bug GH-8943 Reflection::getModifiersNames() with readonly modifier
2 parents caa13af + c650e67 commit 4dd66b8

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

ext/reflection/php_reflection.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1559,6 +1559,10 @@ ZEND_METHOD(Reflection, getModifierNames)
15591559
if (modifiers & ZEND_ACC_STATIC) {
15601560
add_next_index_stringl(return_value, "static", sizeof("static")-1);
15611561
}
1562+
1563+
if (modifiers & (ZEND_ACC_READONLY | ZEND_ACC_READONLY_CLASS)) {
1564+
add_next_index_stringl(return_value, "readonly", sizeof("readonly")-1);
1565+
}
15621566
}
15631567
/* }}} */
15641568

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
--TEST--
2+
Reflection::getModifierNames() basic
3+
--FILE--
4+
<?php
5+
6+
function printModifiers($modifiers) {
7+
echo implode(',', Reflection::getModifierNames($modifiers)), PHP_EOL;
8+
}
9+
10+
printModifiers(ReflectionProperty::IS_PRIVATE);
11+
printModifiers(ReflectionProperty::IS_PROTECTED | ReflectionProperty::IS_STATIC);
12+
printModifiers(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_READONLY);
13+
printModifiers(ReflectionClass::IS_EXPLICIT_ABSTRACT);
14+
printModifiers(ReflectionMethod::IS_ABSTRACT | ReflectionMethod::IS_FINAL);
15+
printModifiers(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_STATIC | ReflectionProperty::IS_READONLY);
16+
printModifiers(ReflectionClass::IS_READONLY);
17+
?>
18+
--EXPECT--
19+
private
20+
protected,static
21+
public,readonly
22+
abstract
23+
abstract,final
24+
public,static,readonly
25+
readonly

0 commit comments

Comments
 (0)