run code in 200+ php & hhvm versions
Bugs & Features
<?php    class Animal {     public static $name = "animal";        // Return the class that is represented by "self::"     public function getSelfClass()     {         return get_class();     }        // Return the class that is represented by "static::"     public function getStaticClass()     {         return get_called_class();     }        public function selfVar()     {         return self::$name;     }        public function staticVar()     {         return static::$name;     }        public function selfMethod()     {         return self::getName();     }        public function staticMethod()     {         return static::getName();     }        protected function getName()     {         return "animal";     }    }    class Penguin extends Animal {     public static $name = "penguin";        protected function getName()     {         return "penguin";     } }    var_dump('selfVar'.Penguin::selfVar()); var_dump('staticVar'.Penguin::staticVar()); var_dump('selfMethod'.Penguin::selfMethod()); var_dump('staticMethod'.Penguin::staticMethod()); var_dump('getSelfClass'.Penguin::getSelfClass()); var_dump('getStaticClass'.Penguin::getStaticClass());

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Note: hhvm uses a JIT which only kicks in after a few runs. Since we run scripts only once, hhvm always runs slower.

VersionSystem time (s)User time (s)Memory (MiB)