3v4l.org

run code in 500+ PHP versions simultaneously
<?php class A { protected static $member_counter = 0; public static function counter() { static $counter = 0; $counter++; return $counter; } public static function member_counter(){ static::$member_counter++; return static::$member_counter; } } class B extends A { protected static $member_counter = 0; } var_dump(A::counter()); // int(1) var_dump(A::counter()); // int(2) var_dump(B::counter()); // int(3), previously int(1) var_dump(B::counter()); // int(4), previously int(2) echo '======================='.PHP_EOL; var_dump(A::member_counter()); // int(1) var_dump(A::member_counter()); // int(2) var_dump(B::member_counter()); // int(1) var_dump(B::member_counter()); // int(2)
Output for 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
int(1) int(2) int(3) int(4) ======================= int(1) int(2) int(1) int(2)
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30
int(1) int(2) int(1) int(2) ======================= int(1) int(2) int(1) int(2)

preferences:
96.99 ms | 1246 KiB | 4 Q