3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Personnage { private $_force; private $_experience; private $_degats; public function frapper(Personnage $persoAFrapper) { $persoAFrapper->_degats += $this->_force; } public function gagnerExperience() { $this->_experience++; } // Mutateur chargé de modifier l'attribut $_force. public function setForce($force) { if (!is_int($force)) // S'il ne s'agit pas d'un nombre entier. { trigger_error('La force d\'un personnage doit être un nombre entier', E_USER_WARNING); return; } if ($force > 100) // On vérifie bien qu'on ne souhaite pas assigner une valeur supérieure à 100. { trigger_error('La force d\'un personnage ne peut dépasser 100', E_USER_WARNING); return; } $this->_force = $force; } // Mutateur chargé de modifier l'attribut $_experience. public function setExperience($experience) { if (!is_int($experience)) // S'il ne s'agit pas d'un nombre entier. { trigger_error('L\'expérience d\'un personnage doit être un nombre entier', E_USER_WARNING); return; } if ($experience > 100) // On vérifie bien qu'on ne souhaite pas assigner une valeur supérieure à 100. { trigger_error('L\'expérience d\'un personnage ne peut dépasser 100', E_USER_WARNING); return; } $this->_experience = $experience; } // Ceci est la méthode degats() : elle se charge de renvoyer le contenu de l'attribut $_degats. public function degats() { return $this->_degats; } // Ceci est la méthode force() : elle se charge de renvoyer le contenu de l'attribut $_force. public function force() { return $this->_force; } // Ceci est la méthode experience() : elle se charge de renvoyer le contenu de l'attribut $_experience. public function experience() { return $this->_experience; } } <?php $perso1 = new Personnage(); // Un premier personnage $perso2 = new Personnage(); // Un second personnage $perso1->frapper($perso2); // $perso1 frappe $perso2 $perso1->gagnerExperience(); // $perso1 gagne de l'expérience $perso2->frapper($perso1); // $perso2 frappe $perso1 $perso2->gagnerExperience(); // $perso2 gagne de l'expérience echo 'Le personnage 1 a ', $perso1->force(), ' de force, contrairement au personnage 2 qui a ', $perso2->force(), ' de force.<br />'; echo 'Le personnage 1 a ', $perso1->experience(), ' d\'expérience, contrairement au personnage 2 qui a ', $perso2->experience(), ' d\'expérience.<br />'; echo 'Le personnage 1 a ', $perso1->degats(), ' de dégâts, contrairement au personnage 2 qui a ', $perso2->degats(), ' de dégâts.<br />';

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).

VersionSystem time (s)User time (s)Memory (MiB)
5.4.260.0030.06018.99
5.4.250.0130.05018.84
5.4.240.0070.05318.90
5.4.230.0100.05318.97
5.4.220.0100.07318.71
5.4.210.0170.07319.01
5.4.200.0100.07018.90
5.4.190.0130.05718.82
5.4.180.0100.05318.82
5.4.170.0100.05318.77
5.4.160.0070.05318.87
5.4.150.0170.07318.89
5.4.140.0170.05016.33
5.4.130.0070.05016.58
5.4.120.0100.07716.45
5.4.110.0130.05016.66
5.4.100.0100.07016.42
5.4.90.0170.04016.57
5.4.80.0230.04716.64
5.4.70.0200.05716.49
5.4.60.0100.05716.30
5.4.50.0130.04316.19
5.4.40.0070.05316.55
5.4.30.0100.05016.30
5.4.20.0070.05316.34
5.4.10.0070.06316.42
5.4.00.0100.05715.96
5.3.280.0070.07714.70
5.3.270.0070.06014.64
5.3.260.0100.05014.60
5.3.250.0170.07014.60
5.3.240.0100.06014.52
5.3.230.0170.04714.75
5.3.220.0070.06314.62
5.3.210.0030.06014.65
5.3.200.0130.06314.75
5.3.190.0200.06314.55
5.3.180.0030.06014.71
5.3.170.0130.05014.48
5.3.160.0070.07714.55
5.3.150.0130.06314.55
5.3.140.0130.06314.66
5.3.130.0070.05314.75
5.3.120.0100.04714.69
5.3.110.0200.05014.54
5.3.100.0100.04714.02
5.3.90.0270.04014.09
5.3.80.0130.06314.11
5.3.70.0170.04314.05
5.3.60.0100.04714.08
5.3.50.0070.05713.87
5.3.40.0170.04314.03
5.3.30.0100.05714.08
5.3.20.0100.04713.54
5.3.10.0100.05313.63
5.3.00.0130.06713.67
5.2.170.0070.04011.32
5.2.160.0070.04011.23
5.2.150.0070.04011.24
5.2.140.0070.04311.14
5.2.130.0070.05311.11
5.2.120.0100.04010.95
5.2.110.0070.04311.21
5.2.100.0070.04311.22
5.2.90.0100.05311.20
5.2.80.0100.05311.29
5.2.70.0070.04311.28
5.2.60.0070.04311.14
5.2.50.0030.04311.07
5.2.40.0100.03711.19
5.2.30.0030.04311.05
5.2.20.0030.04310.98
5.2.10.0070.04011.05
5.2.00.0070.04310.82
5.1.60.0030.0509.85
5.1.50.0100.0309.98
5.1.40.0070.0479.96
5.1.30.0100.03010.51
5.1.20.0030.05010.59
5.1.10.0000.04310.29
5.1.00.0070.04010.06
5.0.50.0100.0278.72
5.0.40.0070.0238.26
5.0.30.0030.0508.23
5.0.20.0130.0178.18
5.0.10.0130.0308.16
5.0.00.0100.0438.18
4.4.90.0100.0177.22
4.4.80.0000.0307.22
4.4.70.0030.0307.22
4.4.60.0030.0207.22
4.4.50.0070.0237.22
4.4.40.0070.0307.21
4.4.30.0030.0237.21
4.4.20.0030.0307.20
4.4.10.0000.0337.20
4.4.00.0000.0377.20
4.3.110.0100.0207.20
4.3.100.0030.0207.20
4.3.90.0000.0277.20
4.3.80.0000.0337.20
4.3.70.0070.0137.20
4.3.60.0070.0277.20
4.3.50.0070.0277.20
4.3.40.0000.0337.20
4.3.30.0000.0237.20
4.3.20.0070.0237.20
4.3.10.0070.0177.20
4.3.00.0030.0207.15

preferences:
139.27 ms | 1394 KiB | 7 Q