3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * This is a proxy class for calling PrefsManager methods using a fixed * user ID. * * @package ManipleCore_Prefs */ class ManipleCore_Prefs_UserPrefs { /** * @var ManipleCore_Prefs_PrefManagerInterface */ protected $_prefManager; /** * @var array */ protected $_prefNames; /** * @var int|string */ protected $_userId; /** * Constructor. * * @param ManipleCore_Prefs_PrefManagerInterface $prefsManager * @param int|string $userId * @param bool|string $load */ public function __construct(ManipleCore_Prefs_PrefManagerInterface $prefManager, $userId, $load = true) { if (!is_int($userId) && !is_string($userId)) { throw new InvalidArgumentException('User ID must either be an integer or a string'); } $this->_prefManager = $prefManager; $this->_userId = $userId; if ($load) { $prefix = is_string($load) ? $load : null; $names = $this->_prefManager->loadUserPrefs($userId, $prefix); $this->_prefNames = array_flip($names); } } /** * Get user preference. * * @param string $name * @param mixed $defaultValue * @return mixed */ public function get($name, $defaultValue = null) { $value = $this->_prefManager->getUserPref($this->_userId, $name, $defaultValue); $this->_prefNames[(string) $name] = true; return $value; } /** * @param string $name * @param bool $defaultValue OPTIONAL * @return bool|null */ public function getBool($name, $defaultValue = null) { $value = $this->get($name, $defaultValue); if ($value !== null) { $value = (bool) $value; } return $value; } /** * @param string $name * @param int $defaultValue OPTIONAL * @return int|null */ public function getInt($name, $defaultValue = null) { $value = $this->get($name, $defaultValue); if ($value !== null) { $value = (int) $value; } return $value; } /** * @param string $name * @param float $defaultValue OPTIONAL * @return float|null */ public function getFloat($name, $defaultValue = null) { $value = $this->get($name, $defaultValue); if ($value !== null) { $value = (float) $value; } return $value; } /** * @param string $name * @param string $defaultValue OPTIONAL * @return string|null */ public function getString($name, $defaultValue = null) { $value = $this->get($name, $defaultValue); if ($value !== null) { $value = (string) $value; } return $value; } /** * Set user preference. * * @param string $name * @param mixed $value * @return ManipleCore_Prefs_UserPrefs */ public function set($name, $value) { $this->_prefManager->setUserPref($this->_userId, $name, $value); $this->_prefNames[(string) $name] = true; return $this; } /** * Reset user preference. * * @param string $name * @return ManipleCore_Prefs_UserPrefs */ public function reset($name) { $this->_prefManager->resetUserPref($this->_userId, $name); unset($this->_prefNames[(string) $name]); return $this; } /** * Persist user preferences. * * @return ManipleCore_Prefs_UserPrefs */ public function save() { $this->_prefManager->saveUserPrefs($this->_userId); return $this; } /** * Return names of loaded preferences. * * @return string[] */ public function getNames() { return array_keys((array) $this->_prefNames); } }

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.60.0120.00316.75
8.3.50.0160.00322.05
8.3.40.0040.01118.71
8.3.30.0160.00319.00
8.3.20.0070.00020.29
8.3.10.0040.00423.66
8.3.00.0060.00317.68
8.2.180.0110.01116.32
8.2.170.0040.01122.96
8.2.160.0070.00720.50
8.2.150.0080.00024.18
8.2.140.0090.00024.66
8.2.130.0040.00426.16
8.2.120.0040.00420.86
8.2.110.0030.00621.95
8.2.100.0070.00417.78
8.2.90.0030.00519.11
8.2.80.0030.00617.97
8.2.70.0040.00417.50
8.2.60.0050.00317.80
8.2.50.0060.00318.07
8.2.40.0000.00818.03
8.2.30.0030.00618.16
8.2.20.0040.00417.59
8.2.10.0080.00019.61
8.2.00.0000.00717.55
8.1.280.0070.01025.92
8.1.270.0070.00323.99
8.1.260.0080.00026.35
8.1.250.0080.00028.09
8.1.240.0040.00423.80
8.1.230.0080.00419.15
8.1.220.0040.00417.74
8.1.210.0040.00418.77
8.1.200.0080.00417.23
8.1.190.0060.00317.10
8.1.180.0000.00818.10
8.1.170.0000.00818.65
8.1.160.0040.00421.95
8.1.150.0040.00418.84
8.1.140.0040.00417.37
8.1.130.0000.00717.81
8.1.120.0000.00717.38
8.1.110.0040.00417.32
8.1.100.0040.00417.25
8.1.90.0000.00717.28
8.1.80.0000.00717.28
8.1.70.0000.00717.24
8.1.60.0050.00317.48
8.1.50.0040.00417.35
8.1.40.0040.00417.47
8.1.30.0000.00917.48
8.1.20.0000.00817.46
8.1.10.0000.00817.29
8.1.00.0050.00217.34
8.0.300.0040.00418.77
8.0.290.0040.00416.58
8.0.280.0040.00418.29
8.0.270.0060.00317.23
8.0.260.0000.00717.31
8.0.250.0030.00316.95
8.0.240.0050.00216.89
8.0.230.0070.00016.87
8.0.220.0070.00016.69
8.0.210.0000.01116.76
8.0.200.0000.00716.85
8.0.190.0050.00316.90
8.0.180.0070.00016.86
8.0.170.0080.00016.74
8.0.160.0040.00416.85
8.0.150.0000.00716.71
8.0.140.0000.00716.71
8.0.130.0000.00513.20
8.0.120.0030.00516.76
8.0.110.0070.00016.79
8.0.100.0000.00716.65
8.0.90.0040.00416.93
8.0.80.0060.01216.77
8.0.70.0000.00716.64
8.0.60.0000.00716.88
8.0.50.0040.00416.76
8.0.30.0100.00916.99
8.0.20.0100.00917.40
8.0.10.0000.00716.95
8.0.00.0140.00416.82
7.4.330.0000.00615.00
7.4.320.0050.00216.39
7.4.300.0030.00316.43
7.4.290.0100.00016.35
7.4.280.0030.00316.52
7.4.270.0030.00316.37
7.4.260.0060.00316.52
7.4.250.0040.00416.29
7.4.240.0040.00416.40
7.4.230.0030.00316.60
7.4.220.0100.00716.56
7.4.210.0070.01416.55
7.4.200.0070.00016.54
7.4.160.0030.01316.50
7.4.150.0180.00717.40
7.4.140.0130.00517.86
7.4.130.0110.01116.34
7.4.120.0120.00616.35
7.4.110.0030.02016.34
7.4.100.0130.00316.41
7.4.90.0090.01316.51
7.4.80.0100.01119.39
7.4.70.0080.00816.45
7.4.60.0130.00316.38
7.4.50.0020.00216.54
7.4.40.0000.01516.38
7.4.30.0090.00616.53
7.4.00.0060.00614.82
7.3.330.0000.00513.05
7.3.320.0050.00013.18
7.3.310.0000.00716.04
7.3.300.0040.00416.30
7.3.290.0000.01416.11
7.3.280.0080.00916.17
7.3.270.0120.00617.40
7.3.260.0120.00616.44
7.3.250.0140.00416.19
7.3.240.0060.01216.20
7.3.230.0030.01516.52
7.3.210.0090.00916.27
7.3.200.0130.00419.39
7.3.190.0110.00616.31
7.3.180.0060.00916.50
7.3.170.0060.00916.27
7.3.160.0100.00716.52
7.3.120.0090.00314.58
7.2.330.0090.00916.38
7.2.320.0070.01016.54
7.2.310.0000.01716.45
7.2.300.0030.01516.33
7.2.290.0090.00616.25
7.2.60.0070.00416.89
7.2.00.0120.00419.36
7.1.200.0070.00715.63
7.1.100.0000.01418.24
7.1.70.0030.00616.97
7.1.60.0120.01219.70
7.1.50.0080.01216.63
7.1.00.0030.07722.33
7.0.200.0040.00416.72
7.0.140.0030.07322.10
7.0.60.0230.07719.95
7.0.50.0100.07017.89
7.0.40.0100.06720.25
7.0.30.0370.04720.23
7.0.20.0230.04320.37
7.0.10.0230.06320.21
7.0.00.0070.09020.09
5.6.280.0070.07020.89
5.6.210.0070.05020.75
5.6.200.0030.04718.19
5.6.190.0070.04020.63
5.6.180.4300.05020.77
5.6.170.0270.08320.45
5.6.160.0070.07720.48
5.6.150.0070.08018.15
5.6.140.0100.03718.22
5.6.130.0000.08718.15
5.6.120.0070.07721.13
5.6.110.0170.06721.07
5.6.100.0070.08720.90
5.6.90.0170.06021.02
5.6.80.0030.06320.40
5.5.350.0200.05720.49
5.5.340.0030.04018.09
5.5.330.0130.07720.25
5.5.320.0230.04720.34
5.5.310.0300.04720.41
5.5.300.0100.03318.05
5.5.290.0030.08318.02
5.5.280.0030.06320.92
5.5.270.0100.08320.74
5.5.260.0100.08020.89
5.5.250.0000.07320.63
5.5.240.0230.06320.18
5.4.450.0070.03719.41
5.4.440.0670.06319.52
5.4.430.0100.05319.56
5.4.420.0070.05719.51
5.4.410.0170.04719.25
5.4.400.0130.04719.29
5.4.390.0000.06319.09
5.4.380.0100.05318.71
5.4.370.0300.05018.63
5.4.360.0200.04718.79
5.4.350.0030.03812.04
5.4.340.0060.04112.04
5.4.320.0070.04012.52
5.4.310.0070.03812.52
5.4.300.0060.03612.53
5.4.290.0070.03712.52
5.4.280.0060.03612.41
5.4.270.0050.03712.42
5.4.260.0040.04012.42
5.4.250.0060.03812.41
5.4.240.0120.03112.42
5.4.230.0020.04212.41
5.4.220.0040.03912.41
5.4.210.0050.03712.41
5.4.200.0050.04012.41
5.4.190.0090.03612.41
5.4.180.0100.03412.41
5.4.170.0050.03812.42
5.4.160.0050.03712.41
5.4.150.0100.03412.41
5.4.140.0050.03912.09
5.4.130.0020.04012.08
5.4.120.0040.03712.04
5.4.110.0060.03612.04
5.4.100.0110.03012.04
5.4.90.0030.04012.04
5.4.80.0100.03212.04
5.4.70.0080.03212.03
5.4.60.0090.03212.03
5.4.50.0080.03312.03
5.4.40.0060.03512.02
5.4.30.0080.03512.02
5.4.20.0060.03512.02
5.4.10.0050.03712.02
5.4.00.0040.03711.50
5.3.290.0080.04812.80
5.3.280.0070.03712.71
5.3.270.0030.04212.72
5.3.260.0070.04012.72
5.3.250.0050.03912.72
5.3.240.0080.03612.72
5.3.230.0100.03412.71
5.3.220.0060.03612.68
5.3.210.0060.03912.68
5.3.200.0040.03812.68
5.3.190.0090.03512.68
5.3.180.0050.03812.68
5.3.170.0070.03612.68
5.3.160.0070.03512.68
5.3.150.0060.03712.68
5.3.140.0080.03512.67
5.3.130.0100.03412.66
5.3.120.0060.03812.66
5.3.110.0080.03712.66
5.3.100.0090.03412.15
5.3.90.0050.03812.14
5.3.80.0060.03612.12
5.3.70.0050.03812.12
5.3.60.0070.03512.11
5.3.50.0070.03512.05
5.3.40.0070.03612.05
5.3.30.0050.03612.02
5.3.20.0070.03411.79
5.3.10.0060.03511.77
5.3.00.0050.03711.75
5.2.170.0040.0319.25
5.2.160.0080.0269.25
5.2.150.0080.0279.24
5.2.140.0040.0319.24
5.2.130.0030.0309.20
5.2.120.0060.0279.21
5.2.110.0090.0259.21
5.2.100.0050.0289.21
5.2.90.0040.0299.21
5.2.80.0040.0319.20
5.2.70.0050.0319.20
5.2.60.0060.0299.16
5.2.50.0060.0299.13
5.2.40.0070.0279.11
5.2.30.0040.0319.08
5.2.20.0070.0279.07
5.2.10.0040.0288.98
5.2.00.0050.0308.83
5.1.60.0020.0308.13
5.1.50.0040.0258.12
5.1.40.0030.0258.10
5.1.30.0050.0258.45
5.1.20.0000.0308.48
5.1.10.0050.0248.20
5.1.00.0050.0248.20
5.0.50.0040.0206.68
5.0.40.0030.0196.54
5.0.30.0040.0316.35
5.0.20.0060.0166.32
5.0.10.0050.0186.30
5.0.00.0030.0316.29
4.4.90.0020.0164.78
4.4.80.0030.0154.75
4.4.70.0020.0164.76
4.4.60.0030.0154.76
4.4.50.0030.0154.77
4.4.40.0030.0254.71
4.4.30.0030.0154.76
4.4.20.0010.0174.84
4.4.10.0020.0164.85
4.4.00.0040.0244.76
4.3.110.0020.0164.67
4.3.100.0020.0154.66
4.3.90.0020.0154.63
4.3.80.0030.0244.58
4.3.70.0030.0144.63
4.3.60.0030.0144.63
4.3.50.0040.0144.63
4.3.40.0030.0234.54
4.3.30.0010.0173.30
4.3.20.0020.0163.28
4.3.10.0020.0153.24
4.3.00.0230.02714.98

preferences:
40.92 ms | 401 KiB | 5 Q