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));
Output for git.master, git.master_jit, rfc.property-hooks
===[get_class()]=== UserDefinedClass Object Class: UserDefinedClass DynamicObject Object Class: myStdClass myStdClass Object Class: myStdClass ===[gettype()]=== UserDefinedClass Object Type: object DynamicObject Object Type: object myStdClass Object Type: object ===[is_a(stdClass::class)]=== UserDefinedClass Object Type: DynamicObject Object Type: myStdClass Object Type: ===[instanceof stdClass]=== UserDefinedClass Object Type: DynamicObject Object Type: myStdClass Object Type: ===[is_a(DynamicObject::class)]=== UserDefinedClass Object Type: DynamicObject Object Type: 1 myStdClass Object Type: 1 ===[instanceof DynamicObject]=== UserDefinedClass Object Type: DynamicObject Object Type: 1 myStdClass Object Type: 1 ===[is_subclass_of(stdClass::class)]=== UserDefinedClass Object Type: DynamicObject Object Type: myStdClass Object Type:

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
46.4 ms | 403 KiB | 8 Q