3v4l.org

run code in 300+ PHP versions simultaneously
w<?php $errored = FALSE; set_error_handler(function ($errno, $errstr) use (&$errored) { $errored = TRUE; return TRUE; }); $excludedClasses = [ // These cause fatal errors on instantiation "Closure", "SQLite3", "Filter", "PDO" ]; var_dump( array_filter( get_declared_classes(), function ($className) use (&$errored, $excludedClasses) { $errored = FALSE; $class = new ReflectionClass($className); if (!$class->isInstantiable() || $class->hasMethod('__construct') && (new ReflectionMethod("$className::__construct"))->isPrivate()) { return FALSE; } foreach ($excludedClasses as $bannedClass) { if (substr($className, 0, strlen($bannedClass)) === $bannedClass) { return FALSE; } } if (!(new ReflectionClass($className))->hasMethod('__toString')) { return true; } return FALSE; } ) );
Output for git.master, git.master_jit
warray(94) { [13]=> string(9) "Generator" [15]=> string(13) "WeakReference" [16]=> string(7) "WeakMap" [17]=> string(9) "Attribute" [18]=> string(20) "ReturnTypeWillChange" [19]=> string(22) "AllowDynamicProperties" [20]=> string(18) "SensitiveParameter" [21]=> string(23) "SensitiveParameterValue" [22]=> string(5) "Fiber" [24]=> string(8) "stdClass" [25]=> string(8) "DateTime" [26]=> string(17) "DateTimeImmutable" [27]=> string(12) "DateTimeZone" [28]=> string(12) "DateInterval" [29]=> string(10) "DatePeriod" [30]=> string(11) "LibXMLError" [34]=> string(14) "InflateContext" [35]=> string(14) "DeflateContext" [37]=> string(17) "DOMImplementation" [38]=> string(7) "DOMNode" [39]=> string(16) "DOMNameSpaceNode" [40]=> string(19) "DOMDocumentFragment" [41]=> string(11) "DOMDocument" [42]=> string(11) "DOMNodeList" [43]=> string(15) "DOMNamedNodeMap" [44]=> string(16) "DOMCharacterData" [45]=> string(7) "DOMAttr" [46]=> string(10) "DOMElement" [47]=> string(7) "DOMText" [48]=> string(10) "DOMComment" [49]=> string(15) "DOMCdataSection" [50]=> string(15) "DOMDocumentType" [51]=> string(11) "DOMNotation" [52]=> string(9) "DOMEntity" [53]=> string(18) "DOMEntityReference" [54]=> string(24) "DOMProcessingInstruction" [55]=> string(8) "DOMXPath" [56]=> string(5) "finfo" [72]=> string(25) "RecursiveIteratorIterator" [73]=> string(16) "IteratorIterator" [76]=> string(22) "CallbackFilterIterator" [77]=> string(31) "RecursiveCallbackFilterIterator" [78]=> string(14) "ParentIterator" [79]=> string(13) "LimitIterator" [82]=> string(16) "NoRewindIterator" [83]=> string(14) "AppendIterator" [84]=> string(16) "InfiniteIterator" [85]=> string(13) "RegexIterator" [86]=> string(22) "RecursiveRegexIterator" [87]=> string(13) "EmptyIterator" [88]=> string(21) "RecursiveTreeIterator" [89]=> string(11) "ArrayObject" [90]=> string(13) "ArrayIterator" [91]=> string(22) "RecursiveArrayIterator" [99]=> string(19) "SplDoublyLinkedList" [100]=> string(8) "SplQueue" [101]=> string(8) "SplStack" [103]=> string(10) "SplMinHeap" [104]=> string(10) "SplMaxHeap" [105]=> string(16) "SplPriorityQueue" [106]=> string(13) "SplFixedArray" [107]=> string(16) "SplObjectStorage" [108]=> string(16) "MultipleIterator" [113]=> string(14) "SessionHandler" [117]=> string(21) "Random\Engine\Mt19937" [118]=> string(33) "Random\Engine\PcgOneseq128XslRr64" [119]=> string(32) "Random\Engine\Xoshiro256StarStar" [120]=> string(20) "Random\Engine\Secure" [121]=> string(17) "Random\Randomizer" [123]=> string(10) "Reflection" [126]=> string(19) "ReflectionGenerator" [144]=> string(15) "ReflectionFiber" [145]=> string(22) "__PHP_Incomplete_Class" [147]=> string(15) "php_user_filter" [148]=> string(9) "Directory" [156]=> string(9) "XMLParser" [157]=> string(9) "XMLReader" [158]=> string(9) "XMLWriter" [159]=> string(3) "GMP" [160]=> string(8) "Collator" [161]=> string(15) "NumberFormatter" [162]=> string(10) "Normalizer" [163]=> string(6) "Locale" [164]=> string(16) "MessageFormatter" [165]=> string(17) "IntlDateFormatter" [166]=> string(24) "IntlDatePatternGenerator" [167]=> string(14) "ResourceBundle" [171]=> string(21) "IntlGregorianCalendar" [172]=> string(12) "Spoofchecker" [174]=> string(12) "IntlIterator" [176]=> string(26) "IntlRuleBasedBreakIterator" [178]=> string(17) "IntlPartsIterator" [179]=> string(10) "UConverter" [180]=> string(8) "IntlChar" }
Output for rfc.property-hooks
warray(94) { [13]=> string(9) "Generator" [15]=> string(13) "WeakReference" [16]=> string(7) "WeakMap" [17]=> string(9) "Attribute" [18]=> string(20) "ReturnTypeWillChange" [19]=> string(22) "AllowDynamicProperties" [20]=> string(18) "SensitiveParameter" [21]=> string(23) "SensitiveParameterValue" [22]=> string(5) "Fiber" [24]=> string(8) "stdClass" [25]=> string(8) "DateTime" [26]=> string(17) "DateTimeImmutable" [27]=> string(12) "DateTimeZone" [28]=> string(12) "DateInterval" [29]=> string(10) "DatePeriod" [39]=> string(11) "LibXMLError" [43]=> string(14) "InflateContext" [44]=> string(14) "DeflateContext" [46]=> string(17) "DOMImplementation" [47]=> string(7) "DOMNode" [48]=> string(16) "DOMNameSpaceNode" [49]=> string(19) "DOMDocumentFragment" [50]=> string(11) "DOMDocument" [51]=> string(11) "DOMNodeList" [52]=> string(15) "DOMNamedNodeMap" [53]=> string(16) "DOMCharacterData" [54]=> string(7) "DOMAttr" [55]=> string(10) "DOMElement" [56]=> string(7) "DOMText" [57]=> string(10) "DOMComment" [58]=> string(15) "DOMCdataSection" [59]=> string(15) "DOMDocumentType" [60]=> string(11) "DOMNotation" [61]=> string(9) "DOMEntity" [62]=> string(18) "DOMEntityReference" [63]=> string(24) "DOMProcessingInstruction" [64]=> string(8) "DOMXPath" [65]=> string(5) "finfo" [81]=> string(25) "RecursiveIteratorIterator" [82]=> string(16) "IteratorIterator" [85]=> string(22) "CallbackFilterIterator" [86]=> string(31) "RecursiveCallbackFilterIterator" [87]=> string(14) "ParentIterator" [88]=> string(13) "LimitIterator" [91]=> string(16) "NoRewindIterator" [92]=> string(14) "AppendIterator" [93]=> string(16) "InfiniteIterator" [94]=> string(13) "RegexIterator" [95]=> string(22) "RecursiveRegexIterator" [96]=> string(13) "EmptyIterator" [97]=> string(21) "RecursiveTreeIterator" [98]=> string(11) "ArrayObject" [99]=> string(13) "ArrayIterator" [100]=> string(22) "RecursiveArrayIterator" [108]=> string(19) "SplDoublyLinkedList" [109]=> string(8) "SplQueue" [110]=> string(8) "SplStack" [112]=> string(10) "SplMinHeap" [113]=> string(10) "SplMaxHeap" [114]=> string(16) "SplPriorityQueue" [115]=> string(13) "SplFixedArray" [116]=> string(16) "SplObjectStorage" [117]=> string(16) "MultipleIterator" [122]=> string(14) "SessionHandler" [126]=> string(21) "Random\Engine\Mt19937" [127]=> string(33) "Random\Engine\PcgOneseq128XslRr64" [128]=> string(32) "Random\Engine\Xoshiro256StarStar" [129]=> string(20) "Random\Engine\Secure" [130]=> string(17) "Random\Randomizer" [133]=> string(10) "Reflection" [136]=> string(19) "ReflectionGenerator" [154]=> string(15) "ReflectionFiber" [155]=> string(22) "__PHP_Incomplete_Class" [157]=> string(15) "php_user_filter" [158]=> string(9) "Directory" [166]=> string(9) "XMLParser" [167]=> string(9) "XMLReader" [168]=> string(9) "XMLWriter" [169]=> string(3) "GMP" [170]=> string(8) "Collator" [171]=> string(15) "NumberFormatter" [172]=> string(10) "Normalizer" [173]=> string(6) "Locale" [174]=> string(16) "MessageFormatter" [175]=> string(17) "IntlDateFormatter" [176]=> string(24) "IntlDatePatternGenerator" [177]=> string(14) "ResourceBundle" [181]=> string(21) "IntlGregorianCalendar" [182]=> string(12) "Spoofchecker" [184]=> string(12) "IntlIterator" [186]=> string(26) "IntlRuleBasedBreakIterator" [188]=> string(17) "IntlPartsIterator" [189]=> string(10) "UConverter" [190]=> string(8) "IntlChar" }

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:
48.69 ms | 408 KiB | 8 Q