-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Closed
Description
Description
The following code:
<?php
class Testing
{
public string $ok_public;
protected string $ok_protected;
private string $ok_private;
public protected(set) string $wrong_public_protected_set;
public private(set) string $wrong_public_private_set;
protected private(set) string $wrong_protected_private_set;
}
$r = new ReflectionClass('Testing');
foreach($r->getProperties() as $rp) {
echo $rp->getName() . ": ";
echo $rp->getModifiers() . ": ";
echo implode(", ", Reflection::getModifierNames($rp->getModifiers())) . "\n";
}
Resulted in this output:
ok_public: 1: public
ok_protected: 2: protected
ok_private: 4: private
wrong_public_protected_set: 2049: public
wrong_public_private_set: 4129: final, public
wrong_protected_private_set: 4130: final, protected
But I expected this output instead:
ok_public: 1: public
ok_protected: 2: protected
ok_private: 4: private
wrong_public_protected_set: 2049: public, protected_set
wrong_public_private_set: 4129: final, public, private_set
wrong_protected_private_set: 4130: final, protected, private_set
Link to run it online: https://3v4l.org/2VF1L
PHP Version
PHP Version => 8.4.10
System => Linux ip-172-31-29-183.eu-central-1.compute.internal 5.10.214-202.855.amzn2.x86_64 #1 SMP Tue Apr 9 06:57:12 UTC 2024 x86_64
Build Date => Jul 13 2025 00:21:23
Operating System
No response