3v4l.org

run code in 200+ PHP versions simultaneously
<?php class Model { protected $comments; public function __construct() { $this->comments = new class { public function count() { return rand(1, 20); } }; } } class Post extends Model { public function commentCount() { static $cache; return $cache?: $cache = $this->comments->count(); } } $post = new Post(); var_dump($post->commentCount()); var_dump($post->commentCount()); var_dump($post->commentCount()); var_dump($post->commentCount()); var_dump($post->commentCount());
based on D1X9C
Output for 7.2.10, 7.4.5
int(3) int(3) int(3) int(3) int(3)
Output for 7.2.12, 7.2.16, 7.3.3, 7.3.14, 7.4.0, 7.4.4
int(16) int(16) int(16) int(16) int(16)
Output for 7.2.8, 7.3.16, 7.4.2 - 7.4.3
int(15) int(15) int(15) int(15) int(15)
Output for 7.2.7, 7.2.17, 7.3.2, 7.3.4, 7.3.17, 7.4.1
int(12) int(12) int(12) int(12) int(12)
Output for 7.2.3, 7.2.15, 7.2.18, 7.3.5 - 7.3.6, 7.3.9, 7.3.15
int(4) int(4) int(4) int(4) int(4)
Output for 7.2.25, 7.2.27, 7.3.12 - 7.3.13
int(10) int(10) int(10) int(10) int(10)
Output for 7.2.13, 7.3.11
int(11) int(11) int(11) int(11) int(11)
Output for 7.2.0, 7.2.26, 7.3.10
int(13) int(13) int(13) int(13) int(13)
Output for 7.2.9, 7.2.28 - 7.2.29, 7.3.8
int(17) int(17) int(17) int(17) int(17)
Output for 7.2.19, 7.3.7
int(14) int(14) int(14) int(14) int(14)
Output for 7.2.2, 7.2.4 - 7.2.5, 7.3.1
int(1) int(1) int(1) int(1) int(1)
Output for 7.2.20, 7.3.0
int(5) int(5) int(5) int(5) int(5)
Output for 7.2.21, 7.2.24
int(6) int(6) int(6) int(6) int(6)
Output for 7.2.11, 7.2.23
int(19) int(19) int(19) int(19) int(19)
Output for 7.2.1, 7.2.14, 7.2.22
int(20) int(20) int(20) int(20) int(20)
Output for 7.2.6
int(8) int(8) int(8) int(8) int(8)