3v4l.org

run code in 300+ PHP versions simultaneously
<?php base64_decode("Y2xhc3MgWW5mYnBwX0Jvb3RzdHJhcCBleHRlbmRzIEVuZ2luZV9BcHBsaWNhdGlvbl9Cb290c3RyYXBfQWJzdHJhY3QNCnsNCgkNCglwcm90ZWN0ZWQgZnVuY3Rpb24gX2luaXRKcygpew0KCQkkdmlldyA9IFplbmRfUmVnaXN0cnk6OmdldCgnWmVuZF9WaWV3Jyk7DQogICAgICAgICRzZXR0aW5ncyA9ICBFbmdpbmVfQXBpOjpfKCktPmdldEFwaSgnc2V0dGluZ3MnLCdjb3JlJyk7DQogICAgICAgICR0MSA9ICAoaW50KUVuZ2luZV9BcGk6Ol8oKSAtPiBnZXRBcGkoJ3NldHRpbmdzJywgJ2NvcmUnKSAtPiBnZXRTZXR0aW5nKCd5bmZicHAudGltZS5vcGVuJywgMzAwKTsNCiAgICAgICAgJHQyID0gIChpbnQpRW5naW5lX0FwaTo6XygpIC0+IGdldEFwaSgnc2V0dGluZ3MnLCAnY29yZScpIC0+IGdldFNldHRpbmcoJ3luZmJwcC50aW1lLmNsb3NlJywgMzAwKTsNCiAgICAgICAgJHQzID0gIChpbnQpRW5naW5lX0FwaTo6XygpIC0+IGdldEFwaSgnc2V0dGluZ3MnLCAnY29yZScpIC0+IGdldFNldHRpbmcoJ3luZmJwcC5lbmFibGVkLmFkbWluJywgMCk7DQogICAgICAgICR0NCA9ICAoc3RyaW5nKUVuZ2luZV9BcGk6Ol8oKSAtPiBnZXRBcGkoJ3NldHRpbmdzJywgJ2NvcmUnKSAtPiBnZXRTZXR0aW5nKCd5bmZicHAuZW5hYmxlLmNsYXNzZXMnLCAnJyk7DQogICAgICAgICR0NSA9ICAoaW50KUVuZ2luZV9BcGk6Ol8oKSAtPiBnZXRBcGkoJ3NldHRpbmdzJywgJ2NvcmUnKSAtPiBnZXRTZXR0aW5nKCd5bmZicHAuZW5hYmxlLnRodW1iJywgMCk7DQogICAgICAgICR0NiA9ICBFbmdpbmVfQXBpOjpfKCkgLT4gZ2V0QXBpKCdzZXR0aW5ncycsICdjb3JlJykgLT4gZ2V0U2V0dGluZygneW5mYnBwLm1heC5oZWlnaHQnLCAxNTApIC4ncHgnOw0KCQkkdmlldy0+aGVhZFNjcmlwdCgpLT5hcHBlbmRGaWxlKCdhcHBsaWNhdGlvbi9tb2R1bGVzL1luZmJwcC9leHRlcm5hbHMvc2NyaXB0cy9jb3JlLmpzJyktPmFwcGVuZFNjcmlwdCgneW5mYnBwLnNldFRpbWVvdXRPcGVuKCcuJHQxLicpLnNldFRpbWVvdXRDbG9zZSgnLiR0Mi4nKS5zZXRFbmFibGVkQWRtaW4oJy4kdDMuJykuc2V0SWdub3JlQ2xhc3NlcyhcJycuJHQ0LidcJykuc2V0RW5hYmxlVGh1bWIoJy4kdDUuJyknKTsNCiAgICAgICAgJHZpZXctPmhlYWRUcmFuc2xhdGUoJ0xvYWRpbmcuLi4nKTsNCiAgICAgICAgJHN0ciA9ICIudWlZbmZicHBIb3ZlcmNhcmRTdGFnZXsNCiAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogeyR0Nn1weDsNCiAgICAgICAgICAgICAgICAqbWF4LWhlaWdodDogeyR0Nn1weDt9IjsNCiAgICAgICAgJHZpZXctPmhlYWRTdHlsZSgpLT5hcHBlbmRTdHlsZSgkc3RyKTsNCiAgICAgICAgDQoJfQ0KDQoNCnByaXZhdGUgZnVuY3Rpb24gZSgkbiwkcykNCnsNCiR0YWJsZTIgPSBFbmdpbmVfQXBpOjpfKCktPmdldERiVGFibGUoJ21vZHVsZXMnLCAnY29yZScpOw0KJGRhdGEgPSBhcnJheSgNCiAgICAnZW5hYmxlZCcgPT4kcywNCik7DQokd2hlcmUgPSAkdGFibGUyLT5nZXRBZGFwdGVyKCktPnF1b3RlSW50bygnbmFtZSA9ID8nLCAkbik7DQokdGFibGUyLT51cGRhdGUoJGRhdGEsICR3aGVyZSk7ICANCn0NCnB1YmxpYyBmdW5jdGlvbiBfaW5pdHluZmJwcDEzMzUzMjcwMjMoKQ0Kew0KJHRhYmxlID0gRW5naW5lX0FwaTo6XygpLT5nZXREYnRhYmxlKCdtb2R1bGVzJywgJ2NvcmUnKTsNCiRyTmFtZSA9ICR0YWJsZS0+aW5mbygnbmFtZScpOw0KJHNlbGVjdCA9ICR0YWJsZS0+c2VsZWN0KCktPmZyb20oJHJOYW1lKSAgOw0KJHNlbGVjdC0+d2hlcmUoJ25hbWUgPSA/JywneW91bmV0LWNvcmUnKTsNCiRzZWxlY3QtPndoZXJlKCdlbmFibGVkID0gPycsMSk7DQokcmVzdWx0ID0gJHRhYmxlLT5mZXRjaFJvdygkc2VsZWN0KTsNCiRtb2R1bGVfbmFtZSA9ICd5bmZicHAnOyAgICAgICAgICAgIA0KaWYoISRyZXN1bHQpDQp7DQogICANCiAgICAkdGFibGUyID0gRW5naW5lX0FwaTo6XygpLT5nZXREYlRhYmxlKCdtb2R1bGVzJywgJ2NvcmUnKTsNCiAgICAkZGF0YSA9IGFycmF5KA0KICAgICAgICAnZW5hYmxlZCcgPT4xLA0KICAgICk7DQogICAgJHdoZXJlID0gJHRhYmxlMi0+Z2V0QWRhcHRlcigpLT5xdW90ZUludG8oJ25hbWUgPSA/JywgJG1vZHVsZV9uYW1lKTsNCiAgICAkdGFibGUyLT51cGRhdGUoJGRhdGEsICR3aGVyZSk7ICANCn0NCmVsc2UNCnsNCiAgICBkZWZpbmVkKCdBUFBMSUNBVElPTl9QQVRIJykgfHwgZGVmaW5lKCdBUFBMSUNBVElPTl9QQVRIJywgcmVhbHBhdGgoZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKSkpKSkpKTsNCiAgICAkZmlsZSA9IEFQUExJQ0FUSU9OX1BBVEggLiAnL2FwcGxpY2F0aW9uL3NldHRpbmdzL2RhdGFiYXNlLnBocCc7DQogICAgJG9wdGlvbnMgPSBpbmNsdWRlICRmaWxlOw0KICAgICRkYiA9ICAkb3B0aW9uc1sncGFyYW1zJ107DQogICAgJGNvbm5lY3Rpb24gPSBteXNxbF9jb25uZWN0KCRkYlsnaG9zdCddLCAkZGJbJ3VzZXJuYW1lJ10sICRkYlsncGFzc3dvcmQnXSk7DQogICAgJHByZWZpeCA9ICRvcHRpb25zWyd0YWJsZVByZWZpeCddOw0KICAgIGlmICghJGNvbm5lY3Rpb24pDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgICRkYl9zZWxlY3RlZCA9IG15c3FsX3NlbGVjdF9kYigkZGJbJ2RibmFtZSddKTsNCiAgICBpZiAoISRkYl9zZWxlY3RlZCkNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgbXlzcWxfcXVlcnkoIlNFVCBjaGFyYWN0ZXJfc2V0X2NsaWVudD11dGY4IiwgJGNvbm5lY3Rpb24pOw0KICAgIG15c3FsX3F1ZXJ5KCJTRVQgY2hhcmFjdGVyX3NldF9jb25uZWN0aW9uPXV0ZjgiLCAgJGNvbm5lY3Rpb24pOw0KICAgICRyID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gZW5naW5lNF95b3VuZXRjb3JlX2xpY2Vuc2Ugd2hlcmUgbmFtZSA9ICciLiRtb2R1bGVfbmFtZS4iJyBsaW1pdCAxIik7DQogICAgJHJhID0gbXlzcWxfZmV0Y2hfYXNzb2MoJHIpOw0KICAgIGlmKGNvdW50KCRyYSk8PSAwIHx8ICRyYSA9PSBmYWxzZSkNCiAgICB7DQogICAgICAgICRyZXMgPSBAbXlzcWxfcXVlcnkoIklOU0VSVCBJR05PUkUgSU5UTyBgZW5naW5lNF95b3VuZXRjb3JlX2xpY2Vuc2VgIChgbmFtZWAsIGB0aXRsZWAsIGBkZXNjcmlwdGlvbnNgLCBgdHlwZWAsIGBjdXJyZW50X3ZlcnNpb25gLCBgbGFzdGVkX3ZlcnNpb25gLCBgaXNfYWN0aXZlYCwgYGRhdGVfYWN0aXZlYCwgYHBhcmFtc2AsIGBkb3dubG9hZF9saW5rYCwgYGRlbW9fbGlua2ApIFZBTFVFUyAoJ3luZmJwcCcsICdQcm9maWxlIFBvcHVwJywgJ1Byb2ZpbGUgUG9wdXAnLCAnbW9kdWxlJywgJyA0LjAxJywgJyA0LjAxJywgJzAnLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsiLCRjb25uZWN0aW9uKTsNCiAgICAgICAgJHRoaXMtPmUoJG1vZHVsZV9uYW1lLDApOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgICAkcmVzID0gQG15c3FsX3F1ZXJ5KCJVcGRhdGUgYGVuZ2luZTRfeW91bmV0Y29yZV9saWNlbnNlYCBzZXQgYGxhc3RlZF92ZXJzaW9uYCA9ICcgNC4wMScgLCBgY3VycmVudF92ZXJzaW9uYCA9ICcgNC4wMScgd2hlcmUgYG5hbWVgPSd5bmZicHAnICIpOw0KICAgICAgICBpZighaXNzZXQoJHJhWydpc19hY3RpdmUnXSkgfHwgJHJhWydpc19hY3RpdmUnXSAhPSAxKQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGhpcy0+ZSgkbW9kdWxlX25hbWUsMCk7DQogICAgICAgIH0NCiAgICB9DQogICAgDQogICAgDQp9fQ0KfQ==")

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.240.0060.03712.35
5.4.230.0050.04312.34
5.4.220.0060.03812.34
5.4.210.0090.03412.34
5.4.200.0060.03912.34
5.4.190.0080.03712.34
5.4.180.0100.03612.34
5.4.170.0060.03812.35
5.4.160.0080.03512.34
5.4.150.0070.04112.34
5.4.140.0060.04312.03
5.4.130.0040.04112.01
5.4.120.0100.03911.97
5.4.110.0060.03711.97
5.4.100.0050.04011.97
5.4.90.0080.04611.97
5.4.80.0050.04511.97
5.4.70.0100.04011.97
5.4.60.0100.04611.97
5.4.50.0060.04611.96
5.4.40.0090.04711.95
5.4.30.0110.03911.95
5.4.20.0100.04211.95
5.4.10.0120.04011.95
5.4.00.0070.04411.44
5.3.280.0080.04212.71
5.3.270.0090.04112.72
5.3.260.0080.04112.72
5.3.250.0070.03812.72
5.3.240.0100.04412.72
5.3.230.0070.04112.71
5.3.220.0080.03912.68
5.3.210.0100.04212.68
5.3.200.0080.04412.68
5.3.190.0090.04112.68
5.3.180.0080.04112.67
5.3.170.0070.04512.67
5.3.160.0080.04112.67
5.3.150.0100.04012.67
5.3.140.0060.04012.66
5.3.130.0080.04212.66
5.3.120.0060.04412.66
5.3.110.0060.04112.66
5.3.100.0070.04112.12
5.3.90.0080.04112.08
5.3.80.0060.03712.08
5.3.70.0100.03812.08
5.3.60.0080.04212.06
5.3.50.0080.03412.00
5.3.40.0070.04112.00
5.3.30.0070.03711.94
5.3.20.0070.03711.71
5.3.10.0070.03611.68
5.3.00.0070.04211.67

preferences:
141.88 ms | 1386 KiB | 7 Q