3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Session { const SESSION_STARTED = TRUE; const SESSION_NOT_STARTED = FALSE; // El estado de la sesión private $sessionState = self::SESSION_NOT_STARTED; // La única instancia de la clase private static $instance; private function __construct() {} /** * Devuelve la instancia de "sesión". * La sesión se inicializa automáticamente si no existía. * * @return Objeto **/ public static function getInstance() { if ( !isset(self::$instance)) { self::$instance = new self; } self::$instance->startSession(); return self::$instance; } /** * Inicia la sesión. * * @ Return bool TRUE si la sesión se ha inicializado, de lo contrario False. **/ public function startSession() { if ( $this->sessionState == self::SESSION_NOT_STARTED ) { $this->sessionState = session_start(); } return $this->sessionState; } /** * Carga datos de la sesión. * * @return Void **/ public function __set( $name , $value ) { $_SESSION[$name] = $value; } /** * Obtiene datos de sesión. * **/ public function __get( $name ) { if ( isset($_SESSION[$name])) { return $_SESSION[$name]; } } public function __isset( $name ) { return isset($_SESSION[$name]); } public function __unset( $name ) { unset( $_SESSION[$name] ); } /** * Destruye la sesión actual. * * @ Return bool TRUE si la sesión ha sido eliminada, de lo contrario False. **/ public function destroy() { if ( $this->sessionState == self::SESSION_STARTED ) { $this->sessionState = !session_destroy(); unset( $_SESSION ); return !$this->sessionState; } return FALSE; } } // Obtenemos la instancia de sesion $data = Session::getInstance(); // Carga datos en la sesión $data->nickname = 'Someone'; $data->age = 18; // Visualización de datos printf( '<p>My name is %s and I\'m %d years old.</p>' , $data->nickname , $data->age ); /* Se mostrará: Array ( [nickname] => Someone [age] => 18 ) */ printf( '<pre>%s</pre>' , print_r( $_SESSION , TRUE )); // TRUE var_dump( isset( $data->nickname )); // Destruimos la sesión $data->destroy(); // FALSE var_dump( isset( $data->nickname )); ?>

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)
8.3.40.0150.00018.73
8.3.30.0100.00618.80
8.3.20.0080.00021.73
8.3.10.0040.00421.69
8.3.00.0070.00319.02
8.2.170.0130.00322.96
8.2.160.0110.00422.07
8.2.150.0030.00624.18
8.2.140.0030.00524.66
8.2.130.0050.00222.30
8.2.120.0040.00426.35
8.2.110.0060.00322.20
8.2.100.0090.00417.91
8.2.90.0000.00819.21
8.2.80.0050.00318.03
8.2.70.0000.00817.61
8.2.60.0110.00017.80
8.2.50.0030.00518.16
8.2.40.0050.00320.55
8.2.30.0000.00819.41
8.2.20.0030.00918.11
8.2.10.0080.00018.22
8.2.00.0040.00418.09
8.1.270.0000.00822.09
8.1.260.0070.00026.35
8.1.250.0040.00428.09
8.1.240.0060.00321.00
8.1.230.0060.00617.77
8.1.220.0000.00817.78
8.1.210.0040.00418.77
8.1.200.0060.00317.25
8.1.190.0080.00017.23
8.1.180.0000.00818.10
8.1.170.0050.00318.44
8.1.160.0040.00419.03
8.1.150.0060.00318.95
8.1.140.0000.00819.66
8.1.130.0030.00318.98
8.1.120.0040.00417.55
8.1.110.0040.00417.53
8.1.100.0000.00717.38
8.1.90.0000.00717.53
8.1.80.0070.00017.53
8.1.70.0070.00017.44
8.1.60.0060.00317.67
8.1.50.0000.00917.52
8.1.40.0000.00817.57
8.1.30.0030.00617.76
8.1.20.0000.00817.64
8.1.10.0000.00817.63
8.1.00.0040.00417.57
8.0.300.0000.00818.77
8.0.290.0080.00016.88
8.0.280.0040.00418.46
8.0.270.0000.00717.33
8.0.260.0000.00718.58
8.0.250.0000.00717.01
8.0.240.0000.00816.89
8.0.230.0000.00717.00
8.0.220.0030.00316.89
8.0.210.0040.00417.00
8.0.200.0040.00417.06
8.0.190.0040.00417.04
8.0.180.0080.00016.85
8.0.170.0060.00616.85
8.0.160.0000.00716.95
8.0.150.0000.00716.79
8.0.140.0030.00316.88
8.0.130.0000.00513.39
8.0.120.0070.00016.79
8.0.110.0000.00816.85
8.0.100.0040.00416.80
8.0.90.0040.00316.77
8.0.80.0060.01616.83
8.0.70.0050.00216.91
8.0.60.0000.00816.97
8.0.50.0050.00316.98
8.0.30.0100.01017.00
8.0.20.0090.01017.40
8.0.10.0000.00817.16
8.0.00.0030.01416.80
7.4.330.0060.00015.55
7.4.320.0060.00016.69
7.4.300.0040.00416.56
7.4.290.0000.00716.65
7.4.280.0040.00416.53
7.4.270.0000.00716.63
7.4.260.0000.00613.33
7.4.250.0030.00516.54
7.4.240.0000.00716.64
7.4.230.0040.00416.75
7.4.220.0120.00616.43
7.4.210.0090.00616.60
7.4.200.0090.00016.73
7.4.160.0060.00916.53
7.4.150.0090.00917.40
7.4.140.0120.00717.86
7.4.130.0120.01016.61
7.4.120.0070.01216.52
7.4.110.0140.01116.35
7.4.100.0090.01016.52
7.4.90.0170.00016.61
7.4.80.0130.00419.39
7.4.70.0110.00516.55
7.4.60.0100.00716.64
7.4.50.0090.00916.42
7.4.40.0110.00716.44
7.4.30.0110.00816.58
7.4.00.0030.01614.89
7.3.330.0000.00513.24
7.3.320.0000.00513.42
7.3.310.0040.00416.30
7.3.300.0000.00816.41
7.3.290.0100.00716.38
7.3.280.0090.00816.36
7.3.270.0140.00417.40
7.3.260.0220.01216.63
7.3.250.0120.00716.39
7.3.240.0110.00716.52
7.3.230.0130.00716.57
7.3.210.0090.00916.41
7.3.200.0100.00716.41
7.3.190.0100.00716.41
7.3.180.0120.00816.40
7.3.170.0100.00716.54
7.3.160.0000.01816.39
7.3.120.0050.01314.78
7.3.110.0100.01014.88
7.3.100.0060.00714.80
7.3.90.0080.00514.80
7.3.80.0050.01014.79
7.3.70.0070.00414.99
7.3.60.0100.00514.85
7.3.50.0050.00914.88
7.3.40.0050.00814.73
7.3.30.0060.00414.83
7.3.20.0080.00616.76
7.3.10.0060.00816.64
7.3.00.0070.00616.64
7.2.330.0130.01016.76
7.2.320.0100.00716.80
7.2.310.0110.00516.75
7.2.300.0060.01016.49
7.2.290.0100.00616.68
7.2.250.0050.01415.11
7.2.240.0080.00815.01
7.2.230.0020.01315.23
7.2.220.0060.00615.13
7.2.210.0060.01114.91
7.2.200.0070.00715.14
7.2.190.0070.00715.04
7.2.180.0030.01215.10
7.2.170.0050.00914.85
7.2.130.0080.00616.99
7.2.120.0070.00716.86
7.2.110.0000.01316.85
7.2.100.0020.01016.91
7.2.90.0020.01016.99
7.2.80.0090.00316.92
7.2.70.0070.00516.79
7.2.60.0060.00816.73
7.2.50.0070.00516.89
7.2.40.0050.00816.96
7.2.30.0050.00616.93
7.2.20.0070.00816.75
7.2.10.0060.00716.87
7.2.00.0060.00617.71
7.1.330.0090.00415.81
7.1.320.0030.00715.79
7.1.310.0050.01015.96
7.1.300.0030.00615.68
7.1.290.0050.00815.79
7.1.280.0080.00715.85
7.1.270.0070.00415.63
7.1.260.0030.00915.94
7.1.250.0080.00615.72
7.1.240.0040.00715.82
7.1.230.0100.00315.73
7.1.220.0060.00315.86
7.1.210.0060.00315.81
7.1.200.0060.00615.86
7.1.190.0100.00315.84
7.1.180.0030.00615.74
7.1.170.0050.00515.47
7.1.160.0030.00915.82
7.1.150.0120.00015.59
7.1.140.0000.01315.55
7.1.130.0060.00615.78
7.1.120.0000.01015.87
7.1.110.0040.01115.64
7.1.100.0070.00617.06
7.1.90.0030.01015.91
7.1.80.0040.00715.68
7.1.70.0050.00616.38
7.1.60.0550.01524.53
7.1.50.0400.01024.54
7.1.40.0630.00824.25
7.1.30.0590.01424.33
7.1.20.0450.01424.37
7.1.10.0480.01115.22
7.1.00.0250.01315.29
7.0.330.0040.00415.28
7.0.320.0090.00615.24
7.0.310.0040.00815.19
7.0.300.0210.00615.43
7.0.290.0000.01415.17
7.0.280.0110.00015.37
7.0.270.0100.00615.38
7.0.260.0070.00715.38
7.0.250.0030.01015.27
7.0.240.0070.00415.13
7.0.230.0030.01015.11
7.0.220.0140.00515.05
7.0.210.0130.00015.16
7.0.200.0400.01315.23
7.0.190.0340.00815.11
7.0.180.0480.01214.90
7.0.170.0390.01214.82
7.0.160.0380.01114.82
7.0.150.0480.01014.87
7.0.140.0280.00914.82
7.0.130.0500.00615.02
7.0.120.0250.01215.00
7.0.110.0250.01314.84
7.0.100.0380.01114.90
7.0.90.0390.00814.96
7.0.80.0410.01114.81
7.0.70.0430.01314.63
7.0.60.0430.00714.59
7.0.50.0380.00814.98
7.0.40.0480.00514.01
7.0.30.0460.00713.97
7.0.20.0250.01014.08
7.0.10.0370.01314.09
7.0.00.0270.01013.97
5.6.380.0060.00314.19

preferences:
63.57 ms | 400 KiB | 5 Q