3v4l.org

run code in 300+ PHP versions simultaneously
<?php // This stands in for stdClass for this demo, because class_alias doesn't work with built-in classes class myStdClass{} class UserDefinedClass{} class_alias('myStdClass', 'DynamicObject'); $ud_obj = new UserDefinedClass(); $do_obj = new DynamicObject(); $sc_obj = new myStdClass(); echo "===[get_class()]===\n"; printf( "UserDefinedClass Object Class: %s\n", get_class($ud_obj)); printf( "DynamicObject Object Class: %s\n", get_class($do_obj)); printf( "myStdClass Object Class: %s\n", get_class($sc_obj)); echo "\n===[gettype()]===\n"; printf( "UserDefinedClass Object Type: %s\n", gettype($ud_obj)); printf( "DynamicObject Object Type: %s\n", gettype($do_obj)); printf( "myStdClass Object Type: %s\n", gettype($sc_obj)); echo "\n===[is_a(stdClass::class)]===\n"; printf( "UserDefinedClass Object Type: %s\n", is_a($ud_obj,stdClass::class)); printf( "DynamicObject Object Type: %s\n", is_a($do_obj,stdClass::class)); printf( "myStdClass Object Type: %s\n", is_a($sc_obj,stdClass::class)); echo "\n===[instanceof stdClass]===\n"; printf( "UserDefinedClass Object Type: %s\n", $ud_obj instanceof stdClass); printf( "DynamicObject Object Type: %s\n", $do_obj instanceof stdClass); printf( "myStdClass Object Type: %s\n", $sc_obj instanceof stdClass); echo "\n===[is_a(DynamicObject::class)]===\n"; printf( "UserDefinedClass Object Type: %s\n", is_a($ud_obj,DynamicObject::class)); printf( "DynamicObject Object Type: %s\n", is_a($do_obj,DynamicObject::class)); printf( "myStdClass Object Type: %s\n", is_a($sc_obj,DynamicObject::class)); echo "\n===[instanceof DynamicObject]===\n"; printf( "UserDefinedClass Object Type: %s\n", $ud_obj instanceof DynamicObject); printf( "DynamicObject Object Type: %s\n", $do_obj instanceof DynamicObject); printf( "myStdClass Object Type: %s\n", $sc_obj instanceof DynamicObject); echo "\n===[is_subclass_of(stdClass::class)]===\n"; printf( "UserDefinedClass Object Type: %s\n", is_subclass_of($ud_obj,stdClass::class)); printf( "DynamicObject Object Type: %s\n", is_subclass_of($do_obj,stdClass::class)); printf( "myStdClass Object Type: %s\n", is_subclass_of($sc_obj,stdClass::class));

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.0150.00418.30
8.3.50.0040.01118.26
8.3.40.0030.01021.86
8.3.30.0040.01118.54
8.3.20.0080.00024.18
8.3.10.0080.00024.66
8.3.00.0040.00426.16
8.2.180.0060.01025.92
8.2.170.0120.00918.97
8.2.160.0150.00322.96
8.2.150.0080.00025.66
8.2.140.0040.00424.66
8.2.130.0040.00426.16
8.2.120.0080.00021.04
8.2.110.0060.00320.53
8.2.100.0060.00320.53
8.1.280.0110.00725.92
8.1.270.0040.00423.99
8.1.260.0040.00426.35
8.1.250.0000.00828.09
8.1.240.0070.00318.51
8.1.230.0040.00722.01
8.0.100.0060.00216.96

preferences:
40.82 ms | 400 KiB | 5 Q