3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace Translatable { interface Translatable {} } namespace Translatable\Impl { use Translatable\Translatable; class Translatable1 implements Translatable {} class Translatable2 implements Translatable {} class Translatable3 implements Translatable {} } namespace Translation { use Translatable\Translatable; use Translation\Impl\BaseTranslator; interface Translator {} class TranslatorFactory { /** * @throws \ReflectionException */ public static function getTranslator(Translatable $a, Translatable $b): Translator { $translatorNamespace = (new \ReflectionClass(BaseTranslator::class))->getNamespaceName(); $translatorClassName = $translatorNamespace . '\\TranslatorFor' . (new \ReflectionClass($a))->getShortName() . 'And' . (new \ReflectionClass($b))->getShortName(); return new $translatorClassName(); } } } namespace Translation\Impl { use Translation\Translator; class BaseTranslator implements Translator {} class Translator1 extends BaseTranslator {} class_alias(Translator1::class, TranslatorForTranslatable1AndTranslatable2::class); class Translator2 extends BaseTranslator {} class_alias(Translator2::class, TranslatorForTranslatable1AndTranslatable3::class); class Translator3 extends BaseTranslator {} class_alias(Translator3::class, TranslatorForTranslatable2AndTranslatable3::class); } namespace { use Translatable\Impl\Translatable1; use Translatable\Impl\Translatable3; use Translation\TranslatorFactory; $translatable1 = new Translatable1(); $translatable3 = new Translatable3(); $translator = TranslatorFactory::getTranslator($translatable1, $translatable3); var_dump($translator); }

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.5.00.0120.01119.92
8.4.150.0020.00014.05
8.4.140.0180.00417.29
8.4.130.0120.00717.72
8.4.120.0140.00620.75
8.4.110.0120.00918.96
8.4.100.0100.00817.79
8.4.90.0120.00920.70
8.4.80.0060.00218.97
8.4.70.0130.00518.98
8.4.60.0110.00918.68
8.4.50.0080.01218.62
8.4.40.0160.00319.56
8.4.30.0060.00320.38
8.4.20.0110.01119.30
8.4.10.0090.00019.48
8.3.280.0020.00014.05
8.3.270.0110.00916.71
8.3.260.0120.00816.60
8.3.250.0080.00118.83
8.3.240.0060.00516.45
8.3.230.0110.00916.78
8.3.220.0110.00719.05
8.3.210.0090.01018.29
8.3.200.0060.00416.70
8.3.190.0080.01017.18
8.3.180.0120.00819.05
8.3.170.0100.01019.04
8.3.160.0070.00317.17
8.3.150.0110.00717.19
8.3.140.0040.00419.10
8.3.130.0040.00418.29
8.3.120.0070.01518.93
8.3.110.0110.00420.94
8.3.100.0060.01024.06
8.3.90.0040.00426.77
8.3.80.0060.00317.97
8.3.70.0100.01016.75
8.3.60.0110.01118.24
8.3.50.0080.00523.51
8.3.40.0140.00718.67
8.3.30.0150.00618.67
8.3.20.0060.01221.90
8.3.10.0030.00520.16
8.3.00.0090.00621.78
8.2.290.0120.00716.59
8.2.280.0130.00618.57
8.2.270.0120.00816.66
8.2.260.0090.00617.31
8.2.250.0080.00016.80
8.2.240.0030.00617.18
8.2.230.0000.00822.58
8.2.220.0040.00437.54
8.2.210.0110.00426.77
8.2.200.0090.00316.75
8.2.190.0120.00316.75
8.2.180.0100.01018.41
8.2.170.0070.00722.96
8.2.160.0100.00320.54
8.2.150.0090.00024.18
8.2.140.0080.00024.66
8.2.130.0060.00326.16
8.2.120.0030.00526.16
8.2.110.0040.00422.16
8.2.100.0080.00417.66
8.2.90.0050.00319.13
8.2.80.0000.00917.97
8.2.70.0030.00717.75
8.2.60.0000.00818.03
8.2.50.0000.00818.07
8.2.40.0000.00818.22
8.2.30.0000.00718.03
8.2.20.0040.00418.08
8.2.10.0070.00019.22
8.2.00.0000.00819.29
8.1.330.0140.00616.16
8.1.320.0090.01017.84
8.1.310.0000.00818.45
8.1.300.0100.01017.88
8.1.290.0100.00030.84
8.1.280.0140.00025.92
8.1.270.0090.00020.75
8.1.260.0040.00426.35
8.1.250.0040.00428.09
8.1.240.0090.00020.70
8.1.230.0090.00317.54
8.1.220.0030.00617.76
8.1.210.0030.00518.77
8.1.200.0050.00517.23
8.1.190.0080.00017.23
8.1.180.0040.00418.10
8.1.170.0040.00418.65
8.1.160.0060.00318.84
8.1.150.0000.00718.80
8.1.140.0000.00722.03
8.1.130.0070.00020.19
8.1.120.0000.00717.53
8.1.110.0050.00317.37
8.1.100.0000.00817.40
8.1.90.0070.00417.45
8.1.80.0100.00017.46
8.1.70.0000.00917.45
8.1.60.0030.00517.54
8.1.50.0000.00817.56
8.1.40.0040.00417.57
8.1.30.0080.00017.62
8.1.20.0030.00517.52
8.1.10.0000.00817.63
8.1.00.0060.00317.45
8.0.300.0080.00019.97
8.0.290.0030.00516.88
8.0.280.0000.00718.49
8.0.270.0000.00718.03
8.0.260.0030.00319.95
8.0.250.0070.00017.01
8.0.240.0070.00317.04
8.0.230.0040.00417.07
8.0.220.0000.00916.98
8.0.210.0060.00316.86
8.0.200.0060.00016.92
8.0.190.0000.00717.05
8.0.180.0030.00617.04
8.0.170.0000.00817.07
8.0.160.0070.00017.07
8.0.150.0030.00317.01
8.0.140.0000.00816.99
8.0.130.0030.00313.41
8.0.120.0050.00216.89
8.0.110.0040.00417.00
8.0.100.0050.00316.82
8.0.90.0090.00016.83
8.0.80.0120.00616.97
8.0.70.0070.00016.81
8.0.60.0040.00417.11
8.0.50.0040.00416.84
8.0.30.0140.00317.14
8.0.20.0100.01017.28
8.0.10.0040.00417.07
8.0.00.0080.01116.76
7.4.330.0020.00216.74
7.4.320.0030.00316.55
7.4.300.0030.00316.64
7.4.290.0000.00716.45
7.4.280.0040.00616.62
7.4.270.0030.00316.70
7.4.260.0050.00013.29
7.4.250.0070.00016.58
7.4.240.0040.00416.53
7.4.230.0050.00316.71
7.4.220.0030.00416.42
7.4.210.0050.01016.61
7.4.200.0030.00316.46
7.4.130.0200.00316.58
7.4.120.0140.01216.52
7.4.110.0120.01216.53
7.4.100.0090.00916.62
7.4.90.0110.00716.63
7.4.80.0130.00319.39
7.4.70.0150.00316.51
7.4.60.0140.00316.53
7.4.50.0040.01216.61
7.4.40.0080.00916.63
7.4.10.0030.01314.94
7.4.00.0050.01315.01
7.3.330.0060.00316.49
7.3.320.0050.00013.25
7.3.310.0070.00016.29
7.3.300.0030.00316.44
7.3.290.0080.01016.35
7.3.260.0100.01416.59
7.3.240.0060.01116.64
7.3.230.0140.00316.62
7.3.210.0060.01016.66
7.3.200.0160.00616.70
7.3.190.0130.00316.18
7.3.180.0060.01516.50
7.3.170.0070.01016.61
7.3.160.0070.01216.50
7.3.130.0070.01014.55
7.3.120.0040.01414.84
7.3.110.0080.01214.72
7.3.100.0080.00914.95
7.3.90.0110.00514.94
7.3.80.0120.00315.05
7.3.70.0040.01114.73
7.3.60.0070.01014.79
7.3.50.0110.00614.77
7.3.40.0090.00814.80
7.3.30.0030.01114.71
7.3.20.0060.00815.80
7.3.10.0040.01115.66
7.3.00.0070.00815.74
7.2.330.0060.01216.83
7.2.320.0070.01416.47
7.2.310.0130.00416.84
7.2.300.0140.00416.63
7.2.290.0030.01316.74
7.2.260.0060.01314.98
7.2.250.0030.01615.05
7.2.240.0060.01114.86
7.2.230.0090.00815.17
7.2.220.0070.01115.16
7.2.210.0060.00815.14
7.2.200.0050.01014.88
7.2.190.0090.00715.10
7.2.180.0050.01115.07
7.2.170.0130.00414.97
7.2.160.0050.01115.18
7.2.150.0070.00715.97
7.2.140.0020.01216.08
7.2.130.0040.01316.03
7.2.120.0100.00816.04
7.2.110.0080.00815.77
7.2.100.0140.00415.99
7.2.90.0100.00715.97
7.2.80.0120.00815.97
7.2.70.0080.01016.03
7.2.60.0100.00816.06
7.2.50.0090.00915.93
7.2.40.0080.00915.95
7.2.30.0060.01116.02
7.2.20.0040.01416.06
7.2.10.0090.00916.04
7.2.00.0090.00715.80

preferences:
171.79 ms | 403 KiB | 5 Q