3v4l.org

run code in 300+ 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.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
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:
153.48 ms | 407 KiB | 5 Q