3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types=1); # THE RESULT HERE IS KINDA KOOL BUT I'M NOT SURE IF I MADE IT WORSE OR BETTER BY STUFFING AROUND WITHOUT A PLAN ! function most_frequent(array $list_to_search) { // print_r($list_to_search);#DEBUG if (count($list_to_search) === 0) return ['', 0]; $it = new ArrayIterator($list_to_search); $counter = 0; $num = $list_to_search[0]; foreach ($it as $i) { $curr_frequency = 0; foreach (new ArrayIterator($list_to_search) as $j) { if ($j === $i) { $curr_frequency++; } } if ($curr_frequency > $counter) { $counter = $curr_frequency; $num = $i; } } return [$num, $counter]; } interface ReToken extends Countable { public function is_empty(): bool; public function get_head(): string; public function has_head(): bool; public function get_tail(): string; public function has_tail(): bool; public function create_without_head(): ReToken; public function create_without_tail(): ReToken; } /** * A string split by [A-Z]+[] */ class ReSingleToken implements ReToken { private iterable $vals; public function __construct(string $val) { // echo 'ReSingleToken('.$val.')'.PHP_EOL;#DEBUG $regexV1 = '/([A-Z]*[a-z_0-9]*)(?=[A-Z]+)/'; $regexV2 = '~([A-Z]?[^A-Z]+|[A-Z]+(?=[A-Z][^A-Z]|$))~'; $words = preg_split($regexV2,$val,-1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE); // print_r($words);#DEBUG $this->vals = $words; // print_r(['"'.$val.'"', $words]);#DEBUG } public function __toString(): string { return implode('', $this->vals); } public function count(): int { return count($this->vals); } public function is_empty(): bool { return count($this) === 0; } public function get_head(): string { return count($this) > 0 ? $this->vals[0] : ''; } public function has_head(): bool { return true; } public function get_tail(): string { return count($this) > 0 ? $this->vals[array_key_last($this->vals)] : ''; } public function has_tail(): bool { return true; } public function create_without_head(): ReSingleToken { $vals = $this->vals; if ($this->has_head()) { array_shift($vals); } return new ReSingleToken(implode('', $vals)); } public function create_without_tail(): ReSingleToken { $vals = $this->vals; if ($this->has_tail()) { array_pop($vals); } return new ReSingleToken(implode('', $vals)); } } class ReGroup implements ReToken, RecursiveIterator { public function __construct( private iterable $tokens, private $commonBeginning, private $commonEnding, private bool $optional = false ) { // echo 'ReGroup(['.implode(',', $tokens).'], commonBeginning='.$commonBeginning.', commonEnding='.$commonEnding.', optional='.(string)$optional.')'.PHP_EOL;#DEBUG foreach ($tokens as $key => $value) { if ($value->is_empty()) { unset($this->tokens[$key]); $this->optional = true; } } } /** * Sets the tokens that are not empty string and makes the object optional * if any are empty. * * @param iterable $tokens The tokens that represent the alternation group. */ public function setTokens(iterable $tokens) { $this->tokens = []; $this->optional = false; foreach ($tokens as $token) { if ((string)$token === '') $this->optional = true; else $this->tokens[] = $token; } } public function tryToOptimize() { while (true) { // get all token heads $tokenHeads = []; foreach ($this->tokens as $token) { if ($token->has_head()) { $tokenHeads[] = $token->get_head(); } } list($head_most_popular, $head_count) = most_frequent($tokenHeads); // get all token tails $tokenTails = []; foreach ($this->tokens as $token) { if ($token->has_tail()) { $tokenTails[] = $token->get_tail(); } } list($tail_most_popular, $tail_count) = most_frequent($tokenTails); // all tokens have same head if ($head_count > 1 and $head_count === count($this->tokens)) { $tokenGroup = []; // $optional = false; foreach ($this->tokens as $token) { $token = $token->create_without_head(); $tokenGroup[] = $token; // if ((string)$token === '') // $optional = true; } // $this->tokens = [new ReGroup($tokenGroup, $head_most_popular, '', $optional)]; $this->setTokens($tokenGroup); $this->commonBeginning = $head_most_popular; $this->commonEnding = ''; // echo 'grouped by popular head: '.__LINE__.PHP_EOL;#DEBUG continue; } // all tokens have same tail if ($tail_count > 1 and $tail_count === count($this->tokens)) { $tokenGroup = []; // $optional = false; foreach ($this->tokens as $token) { $token = $token->create_without_tail(); $tokenGroup[] = $token; // if ((string)$token === '') // $optional = true; } // $this->tokens = [new ReGroup($tokenGroup, '', $tail_most_popular, $optional)]; $this->setTokens($tokenGroup); $this->commonBeginning = ''; $this->commonEnding = $tail_most_popular; // echo 'grouped by popular tail: '.__LINE__.PHP_EOL;#DEBUG continue; } if ($head_count >= $tail_count) { if ($head_count < 2) { // echo '//############################################################################//';#DEBUG // print_r(get_defined_vars());#DEBUG // echo 'no common groups: '.__LINE__.PHP_EOL;#DEBUG break; } $tokensNoHead = []; $tokensOther = []; $optional = false; foreach ($this->tokens as $token) { if ($token->get_head() === $head_most_popular) { $token = $token->create_without_head(); $tokensNoHead[] = $token; if ((string)$token === '') $optional = true; } else $tokensOther[] = $token; } $newGroup = new ReGroup($tokensNoHead, $head_most_popular, '', $optional); $this->tokens = [$newGroup, ...$tokensOther]; } else { if ($tail_count < 2) { // echo 'no common groups: '.__LINE__.PHP_EOL;#DEBUG break; } $tokensNoTail = []; $tokensOther = []; $optional = false; foreach ($this->tokens as $token) { if ($token->get_tail() === $tail_most_popular) { $token = $token->create_without_tail(); $tokensNoTail[] = $token; if ((string)$token === '') $optional = true; } else $tokensOther[] = $token; } $newGroup = new ReGroup($tokensNoTail, '', $tail_most_popular, $optional); $this->tokens = [$newGroup, ...$tokensOther]; } } // $tokens = []; // foreach ($this->tokens as $token) { // if ($token instanceof ReSingleToken and $token->get_head() === '') { // $tokens[] = $token; // } // } // if (count($tokens) > 0) { // #check if group has '' -> make optional // $this->optional = true; // $tokens = []; // foreach ($this->tokens as $token) { // if (!$token instanceof ReSingleToken or $token->get_head() !== '') { // $tokens[] = $token; // } // } // } foreach ($this->tokens as $group) { if ($group instanceof ReGroup) { $group->tryToOptimize(); } } } public function __toString(): string { $tokens = []; foreach ($this->tokens as $token) { $tokens[] = $token->__toString(); } $ret = $this->commonBeginning.'('.implode('|', $tokens).')'.($this->optional ? '?' : '').$this->commonEnding; // echo $ret.PHP_EOL;#DEBUG return $ret; } public function count(): int { return count($this->tokens); } public function is_empty(): bool { return count($this) === 0; } public function get_head(): string { return (string)$this->commonBeginning; } public function has_head(): bool { return (string)$this->commonBeginning != ''; } public function get_tail(): string { return (string)$this->commonEnding; } public function has_tail(): bool { return (string)$this->commonEnding != ''; } public function create_without_head(): ReGroup { return new ReGroup($this->tokens, '', $this->commonEnding, $this->optional); } public function create_without_tail(): ReGroup { return new ReGroup($this->tokens, $this->commonBeginning, '', $this->optional); } // ~~~>>> Iterator <<<~~~ //\ private int $position = 0; public function current(): mixed { return $this->tokens[$this->position]; } public function key(): mixed { return $this->position; } public function next(): void { $this->position++; } public function rewind(): void { $this->position = 0; } public function valid(): bool { return count($this) > $this->position; } // ~~~>>> RecursiveIterator <<<~~~ // public function getChildren(): ?RecursiveIterator { return $this->tokens; } public function hasChildren(): bool { return (bool)count($this); } } $for_test = [ '(A|B|C|D)', '(A|B|C|DA)', '(A|B|C|AD)', '(Example|ArrayIterator|RecursiveArrayIterator|DirectoryIterator|RecursiveDirectoryIterator)', '(Example|DOMNode|DOMText|DOMElement)' ]; $for_test[] = '('.implode( '|', array_filter( get_declared_classes(), function ($value) { return !(bool)strpos($value, '\\'); } ) ).')'; foreach ($for_test as $init) { // print_r(preg_split('/([A-Z]*[a-z_0-9]*)(?=[A-Z]+)/',substr($init, 1, -1),-1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE)); // continue; echo PHP_EOL.PHP_EOL.'----'.PHP_EOL.PHP_EOL; $inita = substr($init, 1, -1); $tokens = []; $strings = explode('|', $inita); foreach ($strings as $token) { $tokens[] = new ReSingleToken($token); } $r = new ReGroup($tokens, '', '', false); $r->tryToOptimize(); // print_r($r); echo $init.' => '.$r; foreach ($r as $token) { if ($token instanceof ReGroup) $token->tryToOptimize(); } echo PHP_EOL.PHP_EOL.$r.PHP_EOL.PHP_EOL; $tree = new RecursiveTreeIterator($r); foreach ($tree as $key => $value) { echo $value.PHP_EOL; } } /** RANDOM NOTES JUST KEEPING CAUSE I'M TOO TIRED TO GO THROUGH IT NOW * (Sngle|Sngle) * Group = Sngle(Sngle|Sngle)Sngle * * Token can have head/tail * * Sngle split into words: * - starting with upper case character * - all uppercase before a word ^ * head/tail = first/last word * * Group split into Sngle * head/tail = common head/tail * * for a group, * get all heads * if any match * group them with heads removed * rebuild tokens with group and remaining tokens * * Abcdef(Ghijk|Lmnop)?Vwxyz * ^pre ^attrib opt^^post * * prefixToken(tokens)suffixToken * * @todo 🟡 what if the common head and tail counts are equal? */

Abusive script

This script was stopped while abusing our resources

Output for 8.4.1 - 8.4.8
---- (A|B|C|D) => (A|B|C|D) (A|B|C|D) |-A |-B |-C \-D ---- (A|B|C|DA) => (A|B|C|DA) (A|B|C|DA) |-A |-B |-C \-DA ---- (A|B|C|AD) => (A|B|C|AD) (A|B|C|AD) |-A |-B |-C \-AD ---- (Example|ArrayIterator|RecursiveArrayIterator|DirectoryIterator|RecursiveDirectoryIterator) => ((Recursive(Array|Directory)|Array|Directory)Iterator|Example) ((Recursive(Array|Directory)|Array|Directory)Iterator|Example) |-(Recursive(Array|Directory)|Array|Directory)Iterator \-Example ---- (Example|DOMNode|DOMText|DOMElement) => (DOM(Node|Text|Element)|Example) (DOM(Node|Text|Element)|Example) |-DOM(Node|Text|Element) \-Example ---- (InternalIterator|Exception|ErrorException|Error|CompileError|ParseError|TypeError|ArgumentCountError|ValueError|ArithmeticError|DivisionByZeroError|UnhandledMatchError|RequestParseBodyException|Closure|Generator|ClosedGeneratorException|WeakReference|WeakMap|Attribute|ReturnTypeWillChange|AllowDynamicProperties|SensitiveParameter|SensitiveParameterValue|Override|Deprecated|Fiber|FiberError|stdClass|DateTime|DateTimeImmutable|DateTimeZone|DateInterval|DatePeriod|DateError|DateObjectError|DateRangeError|DateException|DateInvalidTimeZoneException|DateInvalidOperationException|DateMalformedStringException|DateMalformedIntervalStringException|DateMalformedPeriodStringException|LibXMLError|SQLite3Exception|SQLite3|SQLite3Stmt|SQLite3Result|InflateContext|DeflateContext|DOMException|DOMImplementation|DOMNode|DOMNameSpaceNode|DOMDocumentFragment|DOMDocument|DOMNodeList|DOMNamedNodeMap|DOMCharacterData|DOMAttr|DOMElement|DOMText|DOMComment|DOMCdataSection|DOMDocumentType|DOMNotation|DOMEntity|DOMEntityReference|DOMProcessingInstruction|DOMXPath|finfo|HashContext|JsonException|LogicException|BadFunctionCallException|BadMethodCallException|DomainException|InvalidArgumentException|LengthException|OutOfRangeException|RuntimeException|OutOfBoundsException|OverflowException|RangeException|UnderflowException|UnexpectedValueException|RecursiveIteratorIterator|IteratorIterator|FilterIterator|RecursiveFilterIterator|CallbackFilterIterator|RecursiveCallbackFilterIterator|ParentIterator|LimitIterator|CachingIterator|RecursiveCachingIterator|NoRewindIterator|AppendIterator|InfiniteIterator|RegexIterator|RecursiveRegexIterator|EmptyIterator|RecursiveTreeIterator|ArrayObject|ArrayIterator|RecursiveArrayIterator|SplFileInfo|DirectoryIterator|FilesystemIterator|RecursiveDirectoryIterator|GlobIterator|SplFileObject|SplTempFileObject|SplDoublyLinkedList|SplQueue|SplStack|SplHeap|SplMinHeap|SplMaxHeap|SplPriorityQueue|SplFixedArray|SplObjectStorage|MultipleIterator|PDOException|PDO|PDOStatement|PDORow|SessionHandler|ReflectionException|Reflection|ReflectionFunctionAbstract|ReflectionFunction|ReflectionGenerator|ReflectionParameter|ReflectionType|ReflectionNamedType|ReflectionUnionType|ReflectionIntersectionType|ReflectionMethod|ReflectionClass|ReflectionObject|ReflectionProperty|ReflectionClassConstant|ReflectionExtension|ReflectionZendExtension|ReflectionReference|ReflectionAttribute|ReflectionEnum|ReflectionEnumUnitCase|ReflectionEnumBackedCase|ReflectionFiber|ReflectionConstant|PropertyHookType|__PHP_Incomplete_Class|AssertionError|RoundingMode|php_user_filter|StreamBucket|Directory|SimpleXMLElement|SimpleXMLIterator|PharException|Phar|PharData|PharFileInfo|PhpToken|XMLParser|XMLReader|XMLWriter|GMP|Collator|NumberFormatter|Normalizer|Locale|MessageFormatter|IntlDateFormatter|IntlDatePatternGenerator|ResourceBundle|Transliterator|IntlTimeZone|IntlCalendar|IntlGregorianCalendar|Spoofchecker|IntlException|IntlIterator|IntlBreakIterator|IntlRuleBasedBreakIterator|IntlCodePointBreakIterator|IntlPartsIterator|UConverter|IntlChar|SodiumException|ReSingleToken|ReGroup) => ((Number|Message)Formatter|(std|__PHP_Incomplete_)Class|Re(SingleToken|Group)|Parameter(Value)?|Weak(Reference|Map)|(Inflate|Deflate|Hash)Context|XML(Parser|Reader|Writer)|Phar(Data|FileInfo)?|PDO(Statement|Row)?|Lite3(Stmt|Result)?|Date(Time(Immutable|Zone)?|Interval|Period)|Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char)|Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage)|(Date(Object|Range)?|Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error|DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction)|Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber|Constant)?|(Of(Range|Bounds)|(Function|Method)Call|Date(Invalid(TimeZone|Operation)|(Interval|Period)?String)?|Error|RequestParseBody|ClosedGenerator|SQLite3|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Reflection|Phar|Intl|Sodium)?Exception|((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator|Closure|Generator|Attribute|ReturnTypeWillChange|AllowDynamicProperties|Override|Deprecated|Fiber|DOMXPath|finfo|ArrayObject|SessionHandler|PropertyHookType|RoundingMode|php_user_filter|StreamBucket|Directory|SimpleXMLElement|PhpToken|GMP|Collator|Normalizer|Locale|ResourceBundle|Transliterator|Spoofchecker|UConverter) ((Number|Message)Formatter|(std|__PHP_Incomplete_)Class|Re(SingleToken|Group)|Parameter(Value)?|Weak(Reference|Map)|(Inflate|Deflate|Hash)Context|XML(Parser|Reader|Writer)|Phar(Data|FileInfo)?|PDO(Statement|Row)?|Lite3(Stmt|Result)?|Date(Time(Immutable|Zone)?|Interval|Period)|Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char)|Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage)|(Date(Object|Range)?|Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error|DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction)|Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber|Constant)?|(Of(Range|Bounds)|(Function|Method)Call|Date(Invalid(TimeZone|Operation)|(Interval|Period)?String)?|Error|RequestParseBody|ClosedGenerator|SQLite3|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Reflection|Phar|Intl|Sodium)?Exception|((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator|Closure|Generator|Attribute|ReturnTypeWillChange|AllowDynamicProperties|Override|Deprecated|Fiber|DOMXPath|finfo|ArrayObject|SessionHandler|PropertyHookType|RoundingMode|php_user_filter|StreamBucket|Directory|SimpleXMLElement|PhpToken|GMP|Collator|Normalizer|Locale|ResourceBundle|Transliterator|Spoofchecker|UConverter) |-(Number|Message)Formatter |-(std|__PHP_Incomplete_)Class |-Re(SingleToken|Group) |-Parameter(Value)? |-Weak(Reference|Map) |-(Inflate|Deflate|Hash)Context |-XML(Parser|Reader|Writer) |-Phar(Data|FileInfo)? |-PDO(Statement|Row)? |-Lite3(Stmt|Result)? |-Date(Time(Immutable|Zone)?|Interval|Period) |-Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char) |-Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage) |-(Date(Object|Range)?|Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error |-DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction) |-Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber|Constant)? |-(Of(Range|Bounds)|(Function|Method)Call|Date(Invalid(TimeZone|Operation)|(Interval|Period)?String)?|Error|RequestParseBody|ClosedGenerator|SQLite3|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Reflection|Phar|Intl|Sodium)?Exception |-((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator |-Closure |-Generator |-Attribute |-ReturnTypeWillChange |-AllowDynamicProperties |-Override |-Deprecated |-Fiber |-DOMXPath |-finfo |-ArrayObject |-SessionHandler |-PropertyHookType |-RoundingMode |-php_user_filter |-StreamBucket |-Directory |-SimpleXMLElement |-PhpToken |-GMP |-Collator |-Normalizer |-Locale |-ResourceBundle |-Transliterator |-Spoofchecker \-UConverter
Output for 8.3.0 - 8.3.22
---- (A|B|C|D) => (A|B|C|D) (A|B|C|D) |-A |-B |-C \-D ---- (A|B|C|DA) => (A|B|C|DA) (A|B|C|DA) |-A |-B |-C \-DA ---- (A|B|C|AD) => (A|B|C|AD) (A|B|C|AD) |-A |-B |-C \-AD ---- (Example|ArrayIterator|RecursiveArrayIterator|DirectoryIterator|RecursiveDirectoryIterator) => ((Recursive(Array|Directory)|Array|Directory)Iterator|Example) ((Recursive(Array|Directory)|Array|Directory)Iterator|Example) |-(Recursive(Array|Directory)|Array|Directory)Iterator \-Example ---- (Example|DOMNode|DOMText|DOMElement) => (DOM(Node|Text|Element)|Example) (DOM(Node|Text|Element)|Example) |-DOM(Node|Text|Element) \-Example ---- (InternalIterator|Exception|ErrorException|Error|CompileError|ParseError|TypeError|ArgumentCountError|ValueError|ArithmeticError|DivisionByZeroError|UnhandledMatchError|Closure|Generator|ClosedGeneratorException|WeakReference|WeakMap|Attribute|ReturnTypeWillChange|AllowDynamicProperties|SensitiveParameter|SensitiveParameterValue|Override|Fiber|FiberError|stdClass|DateTime|DateTimeImmutable|DateTimeZone|DateInterval|DatePeriod|DateError|DateObjectError|DateRangeError|DateException|DateInvalidTimeZoneException|DateInvalidOperationException|DateMalformedStringException|DateMalformedIntervalStringException|DateMalformedPeriodStringException|LibXMLError|SQLite3Exception|SQLite3|SQLite3Stmt|SQLite3Result|InflateContext|DeflateContext|DOMException|DOMImplementation|DOMNode|DOMNameSpaceNode|DOMDocumentFragment|DOMDocument|DOMNodeList|DOMNamedNodeMap|DOMCharacterData|DOMAttr|DOMElement|DOMText|DOMComment|DOMCdataSection|DOMDocumentType|DOMNotation|DOMEntity|DOMEntityReference|DOMProcessingInstruction|DOMXPath|finfo|HashContext|JsonException|LogicException|BadFunctionCallException|BadMethodCallException|DomainException|InvalidArgumentException|LengthException|OutOfRangeException|RuntimeException|OutOfBoundsException|OverflowException|RangeException|UnderflowException|UnexpectedValueException|RecursiveIteratorIterator|IteratorIterator|FilterIterator|RecursiveFilterIterator|CallbackFilterIterator|RecursiveCallbackFilterIterator|ParentIterator|LimitIterator|CachingIterator|RecursiveCachingIterator|NoRewindIterator|AppendIterator|InfiniteIterator|RegexIterator|RecursiveRegexIterator|EmptyIterator|RecursiveTreeIterator|ArrayObject|ArrayIterator|RecursiveArrayIterator|SplFileInfo|DirectoryIterator|FilesystemIterator|RecursiveDirectoryIterator|GlobIterator|SplFileObject|SplTempFileObject|SplDoublyLinkedList|SplQueue|SplStack|SplHeap|SplMinHeap|SplMaxHeap|SplPriorityQueue|SplFixedArray|SplObjectStorage|MultipleIterator|PDOException|PDO|PDOStatement|PDORow|SessionHandler|ReflectionException|Reflection|ReflectionFunctionAbstract|ReflectionFunction|ReflectionGenerator|ReflectionParameter|ReflectionType|ReflectionNamedType|ReflectionUnionType|ReflectionIntersectionType|ReflectionMethod|ReflectionClass|ReflectionObject|ReflectionProperty|ReflectionClassConstant|ReflectionExtension|ReflectionZendExtension|ReflectionReference|ReflectionAttribute|ReflectionEnum|ReflectionEnumUnitCase|ReflectionEnumBackedCase|ReflectionFiber|__PHP_Incomplete_Class|AssertionError|php_user_filter|Directory|SimpleXMLElement|SimpleXMLIterator|PharException|Phar|PharData|PharFileInfo|PhpToken|XMLParser|XMLReader|XMLWriter|GMP|Collator|NumberFormatter|Normalizer|Locale|MessageFormatter|IntlDateFormatter|IntlDatePatternGenerator|ResourceBundle|Transliterator|IntlTimeZone|IntlCalendar|IntlGregorianCalendar|Spoofchecker|IntlException|IntlIterator|IntlBreakIterator|IntlRuleBasedBreakIterator|IntlCodePointBreakIterator|IntlPartsIterator|UConverter|IntlChar|SodiumException|ReSingleToken|ReGroup) => ((Number|Message)Formatter|(std|__PHP_Incomplete_)Class|Re(SingleToken|Group)|Parameter(Value)?|Weak(Reference|Map)|(Inflate|Deflate|Hash)Context|XML(Parser|Reader|Writer)|Phar(Data|FileInfo)?|PDO(Statement|Row)?|Lite3(Stmt|Result)?|Date(Time(Immutable|Zone)?|Interval|Period)|Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char)|Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage)|(Date(Object|Range)?|Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error|DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction)|Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber)?|(Of(Range|Bounds)|(Function|Method)Call|Date(Invalid(TimeZone|Operation)|(Interval|Period)?String)?|Error|ClosedGenerator|SQLite3|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Reflection|Phar|Intl|Sodium)?Exception|((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator|Closure|Generator|Attribute|ReturnTypeWillChange|AllowDynamicProperties|Override|Fiber|DOMXPath|finfo|ArrayObject|SessionHandler|php_user_filter|Directory|SimpleXMLElement|PhpToken|GMP|Collator|Normalizer|Locale|ResourceBundle|Transliterator|Spoofchecker|UConverter) ((Number|Message)Formatter|(std|__PHP_Incomplete_)Class|Re(SingleToken|Group)|Parameter(Value)?|Weak(Reference|Map)|(Inflate|Deflate|Hash)Context|XML(Parser|Reader|Writer)|Phar(Data|FileInfo)?|PDO(Statement|Row)?|Lite3(Stmt|Result)?|Date(Time(Immutable|Zone)?|Interval|Period)|Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char)|Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage)|(Date(Object|Range)?|Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error|DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction)|Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber)?|(Of(Range|Bounds)|(Function|Method)Call|Date(Invalid(TimeZone|Operation)|(Interval|Period)?String)?|Error|ClosedGenerator|SQLite3|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Reflection|Phar|Intl|Sodium)?Exception|((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator|Closure|Generator|Attribute|ReturnTypeWillChange|AllowDynamicProperties|Override|Fiber|DOMXPath|finfo|ArrayObject|SessionHandler|php_user_filter|Directory|SimpleXMLElement|PhpToken|GMP|Collator|Normalizer|Locale|ResourceBundle|Transliterator|Spoofchecker|UConverter) |-(Number|Message)Formatter |-(std|__PHP_Incomplete_)Class |-Re(SingleToken|Group) |-Parameter(Value)? |-Weak(Reference|Map) |-(Inflate|Deflate|Hash)Context |-XML(Parser|Reader|Writer) |-Phar(Data|FileInfo)? |-PDO(Statement|Row)? |-Lite3(Stmt|Result)? |-Date(Time(Immutable|Zone)?|Interval|Period) |-Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char) |-Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage) |-(Date(Object|Range)?|Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error |-DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction) |-Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber)? |-(Of(Range|Bounds)|(Function|Method)Call|Date(Invalid(TimeZone|Operation)|(Interval|Period)?String)?|Error|ClosedGenerator|SQLite3|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Reflection|Phar|Intl|Sodium)?Exception |-((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator |-Closure |-Generator |-Attribute |-ReturnTypeWillChange |-AllowDynamicProperties |-Override |-Fiber |-DOMXPath |-finfo |-ArrayObject |-SessionHandler |-php_user_filter |-Directory |-SimpleXMLElement |-PhpToken |-GMP |-Collator |-Normalizer |-Locale |-ResourceBundle |-Transliterator |-Spoofchecker \-UConverter
Output for 8.2.4 - 8.2.28
---- (A|B|C|D) => (A|B|C|D) (A|B|C|D) |-A |-B |-C \-D ---- (A|B|C|DA) => (A|B|C|DA) (A|B|C|DA) |-A |-B |-C \-DA ---- (A|B|C|AD) => (A|B|C|AD) (A|B|C|AD) |-A |-B |-C \-AD ---- (Example|ArrayIterator|RecursiveArrayIterator|DirectoryIterator|RecursiveDirectoryIterator) => ((Recursive(Array|Directory)|Array|Directory)Iterator|Example) ((Recursive(Array|Directory)|Array|Directory)Iterator|Example) |-(Recursive(Array|Directory)|Array|Directory)Iterator \-Example ---- (Example|DOMNode|DOMText|DOMElement) => (DOM(Node|Text|Element)|Example) (DOM(Node|Text|Element)|Example) |-DOM(Node|Text|Element) \-Example ---- (InternalIterator|Exception|ErrorException|Error|CompileError|ParseError|TypeError|ArgumentCountError|ValueError|ArithmeticError|DivisionByZeroError|UnhandledMatchError|Closure|Generator|ClosedGeneratorException|WeakReference|WeakMap|Attribute|ReturnTypeWillChange|AllowDynamicProperties|SensitiveParameter|SensitiveParameterValue|Fiber|FiberError|stdClass|DateTime|DateTimeImmutable|DateTimeZone|DateInterval|DatePeriod|LibXMLError|SQLite3|SQLite3Stmt|SQLite3Result|InflateContext|DeflateContext|DOMException|DOMImplementation|DOMNode|DOMNameSpaceNode|DOMDocumentFragment|DOMDocument|DOMNodeList|DOMNamedNodeMap|DOMCharacterData|DOMAttr|DOMElement|DOMText|DOMComment|DOMCdataSection|DOMDocumentType|DOMNotation|DOMEntity|DOMEntityReference|DOMProcessingInstruction|DOMXPath|finfo|HashContext|JsonException|LogicException|BadFunctionCallException|BadMethodCallException|DomainException|InvalidArgumentException|LengthException|OutOfRangeException|RuntimeException|OutOfBoundsException|OverflowException|RangeException|UnderflowException|UnexpectedValueException|RecursiveIteratorIterator|IteratorIterator|FilterIterator|RecursiveFilterIterator|CallbackFilterIterator|RecursiveCallbackFilterIterator|ParentIterator|LimitIterator|CachingIterator|RecursiveCachingIterator|NoRewindIterator|AppendIterator|InfiniteIterator|RegexIterator|RecursiveRegexIterator|EmptyIterator|RecursiveTreeIterator|ArrayObject|ArrayIterator|RecursiveArrayIterator|SplFileInfo|DirectoryIterator|FilesystemIterator|RecursiveDirectoryIterator|GlobIterator|SplFileObject|SplTempFileObject|SplDoublyLinkedList|SplQueue|SplStack|SplHeap|SplMinHeap|SplMaxHeap|SplPriorityQueue|SplFixedArray|SplObjectStorage|MultipleIterator|PDOException|PDO|PDOStatement|PDORow|SessionHandler|ReflectionException|Reflection|ReflectionFunctionAbstract|ReflectionFunction|ReflectionGenerator|ReflectionParameter|ReflectionType|ReflectionNamedType|ReflectionUnionType|ReflectionIntersectionType|ReflectionMethod|ReflectionClass|ReflectionObject|ReflectionProperty|ReflectionClassConstant|ReflectionExtension|ReflectionZendExtension|ReflectionReference|ReflectionAttribute|ReflectionEnum|ReflectionEnumUnitCase|ReflectionEnumBackedCase|ReflectionFiber|__PHP_Incomplete_Class|AssertionError|php_user_filter|Directory|SimpleXMLElement|SimpleXMLIterator|PharException|Phar|PharData|PharFileInfo|PhpToken|XMLParser|XMLReader|XMLWriter|GMP|Collator|NumberFormatter|Normalizer|Locale|MessageFormatter|IntlDateFormatter|IntlDatePatternGenerator|ResourceBundle|Transliterator|IntlTimeZone|IntlCalendar|IntlGregorianCalendar|Spoofchecker|IntlException|IntlIterator|IntlBreakIterator|IntlRuleBasedBreakIterator|IntlCodePointBreakIterator|IntlPartsIterator|UConverter|IntlChar|SodiumException|ReSingleToken|ReGroup) => ((Number|Message)Formatter|(std|__PHP_Incomplete_)Class|Re(SingleToken|Group)|Parameter(Value)?|Weak(Reference|Map)|(Inflate|Deflate|Hash)Context|XML(Parser|Reader|Writer)|Phar(Data|FileInfo)?|PDO(Statement|Row)?|Lite3(Stmt|Result)?|Date(Time(Immutable|Zone)?|Interval|Period)|Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char)|(Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error|Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage)|DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction)|(Of(Range|Bounds)|(Function|Method)Call|Error|ClosedGenerator|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Phar|Intl|Sodium)?Exception|Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Exception|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber)?|((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator|Closure|Generator|Attribute|ReturnTypeWillChange|AllowDynamicProperties|Fiber|DOMXPath|finfo|ArrayObject|SessionHandler|php_user_filter|Directory|SimpleXMLElement|PhpToken|GMP|Collator|Normalizer|Locale|ResourceBundle|Transliterator|Spoofchecker|UConverter) ((Number|Message)Formatter|(std|__PHP_Incomplete_)Class|Re(SingleToken|Group)|Parameter(Value)?|Weak(Reference|Map)|(Inflate|Deflate|Hash)Context|XML(Parser|Reader|Writer)|Phar(Data|FileInfo)?|PDO(Statement|Row)?|Lite3(Stmt|Result)?|Date(Time(Immutable|Zone)?|Interval|Period)|Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char)|(Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error|Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage)|DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction)|(Of(Range|Bounds)|(Function|Method)Call|Error|ClosedGenerator|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Phar|Intl|Sodium)?Exception|Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Exception|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber)?|((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator|Closure|Generator|Attribute|ReturnTypeWillChange|AllowDynamicProperties|Fiber|DOMXPath|finfo|ArrayObject|SessionHandler|php_user_filter|Directory|SimpleXMLElement|PhpToken|GMP|Collator|Normalizer|Locale|ResourceBundle|Transliterator|Spoofchecker|UConverter) |-(Number|Message)Formatter |-(std|__PHP_Incomplete_)Class |-Re(SingleToken|Group) |-Parameter(Value)? |-Weak(Reference|Map) |-(Inflate|Deflate|Hash)Context |-XML(Parser|Reader|Writer) |-Phar(Data|FileInfo)? |-PDO(Statement|Row)? |-Lite3(Stmt|Result)? |-Date(Time(Immutable|Zone)?|Interval|Period) |-Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char) |-(Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error |-Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage) |-DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction) |-(Of(Range|Bounds)|(Function|Method)Call|Error|ClosedGenerator|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Phar|Intl|Sodium)?Exception |-Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Exception|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber)? |-((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator |-Closure |-Generator |-Attribute |-ReturnTypeWillChange |-AllowDynamicProperties |-Fiber |-DOMXPath |-finfo |-ArrayObject |-SessionHandler |-php_user_filter |-Directory |-SimpleXMLElement |-PhpToken |-GMP |-Collator |-Normalizer |-Locale |-ResourceBundle |-Transliterator |-Spoofchecker \-UConverter
Output for 8.1.23 - 8.1.32
---- (A|B|C|D) => (A|B|C|D) (A|B|C|D) |-A |-B |-C \-D ---- (A|B|C|DA) => (A|B|C|DA) (A|B|C|DA) |-A |-B |-C \-DA ---- (A|B|C|AD) => (A|B|C|AD) (A|B|C|AD) |-A |-B |-C \-AD ---- (Example|ArrayIterator|RecursiveArrayIterator|DirectoryIterator|RecursiveDirectoryIterator) => ((Recursive(Array|Directory)|Array|Directory)Iterator|Example) ((Recursive(Array|Directory)|Array|Directory)Iterator|Example) |-(Recursive(Array|Directory)|Array|Directory)Iterator \-Example ---- (Example|DOMNode|DOMText|DOMElement) => (DOM(Node|Text|Element)|Example) (DOM(Node|Text|Element)|Example) |-DOM(Node|Text|Element) \-Example ---- (stdClass|InternalIterator|Exception|ErrorException|Error|CompileError|ParseError|TypeError|ArgumentCountError|ValueError|ArithmeticError|DivisionByZeroError|UnhandledMatchError|Closure|Generator|ClosedGeneratorException|WeakReference|WeakMap|Attribute|ReturnTypeWillChange|Fiber|FiberError|DateTime|DateTimeImmutable|DateTimeZone|DateInterval|DatePeriod|LibXMLError|SQLite3|SQLite3Stmt|SQLite3Result|InflateContext|DeflateContext|DOMException|DOMImplementation|DOMNode|DOMNameSpaceNode|DOMDocumentFragment|DOMDocument|DOMNodeList|DOMNamedNodeMap|DOMCharacterData|DOMAttr|DOMElement|DOMText|DOMComment|DOMCdataSection|DOMDocumentType|DOMNotation|DOMEntity|DOMEntityReference|DOMProcessingInstruction|DOMXPath|finfo|HashContext|JsonException|LogicException|BadFunctionCallException|BadMethodCallException|DomainException|InvalidArgumentException|LengthException|OutOfRangeException|RuntimeException|OutOfBoundsException|OverflowException|RangeException|UnderflowException|UnexpectedValueException|RecursiveIteratorIterator|IteratorIterator|FilterIterator|RecursiveFilterIterator|CallbackFilterIterator|RecursiveCallbackFilterIterator|ParentIterator|LimitIterator|CachingIterator|RecursiveCachingIterator|NoRewindIterator|AppendIterator|InfiniteIterator|RegexIterator|RecursiveRegexIterator|EmptyIterator|RecursiveTreeIterator|ArrayObject|ArrayIterator|RecursiveArrayIterator|SplFileInfo|DirectoryIterator|FilesystemIterator|RecursiveDirectoryIterator|GlobIterator|SplFileObject|SplTempFileObject|SplDoublyLinkedList|SplQueue|SplStack|SplHeap|SplMinHeap|SplMaxHeap|SplPriorityQueue|SplFixedArray|SplObjectStorage|MultipleIterator|PDOException|PDO|PDOStatement|PDORow|SessionHandler|ReflectionException|Reflection|ReflectionFunctionAbstract|ReflectionFunction|ReflectionGenerator|ReflectionParameter|ReflectionType|ReflectionNamedType|ReflectionUnionType|ReflectionIntersectionType|ReflectionMethod|ReflectionClass|ReflectionObject|ReflectionProperty|ReflectionClassConstant|ReflectionExtension|ReflectionZendExtension|ReflectionReference|ReflectionAttribute|ReflectionEnum|ReflectionEnumUnitCase|ReflectionEnumBackedCase|ReflectionFiber|__PHP_Incomplete_Class|AssertionError|php_user_filter|Directory|SimpleXMLElement|SimpleXMLIterator|PharException|Phar|PharData|PharFileInfo|PhpToken|XMLParser|XMLReader|XMLWriter|GMP|Collator|NumberFormatter|Normalizer|Locale|MessageFormatter|IntlDateFormatter|IntlDatePatternGenerator|ResourceBundle|Transliterator|IntlTimeZone|IntlCalendar|IntlGregorianCalendar|Spoofchecker|IntlException|IntlIterator|IntlBreakIterator|IntlRuleBasedBreakIterator|IntlCodePointBreakIterator|IntlPartsIterator|UConverter|IntlChar|SodiumException|ReSingleToken|ReGroup) => ((Number|Message)Formatter|(std|__PHP_Incomplete_)Class|Re(SingleToken|Group)|Weak(Reference|Map)|(Inflate|Deflate|Hash)Context|XML(Parser|Reader|Writer)|Phar(Data|FileInfo)?|PDO(Statement|Row)?|Lite3(Stmt|Result)?|Date(Time(Immutable|Zone)?|Interval|Period)|Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char)|(Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error|Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage)|DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction)|(Of(Range|Bounds)|(Function|Method)Call|Error|ClosedGenerator|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Phar|Intl|Sodium)?Exception|Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Exception|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber)?|((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator|Closure|Generator|Attribute|ReturnTypeWillChange|Fiber|DOMXPath|finfo|ArrayObject|SessionHandler|php_user_filter|Directory|SimpleXMLElement|PhpToken|GMP|Collator|Normalizer|Locale|ResourceBundle|Transliterator|Spoofchecker|UConverter) ((Number|Message)Formatter|(std|__PHP_Incomplete_)Class|Re(SingleToken|Group)|Weak(Reference|Map)|(Inflate|Deflate|Hash)Context|XML(Parser|Reader|Writer)|Phar(Data|FileInfo)?|PDO(Statement|Row)?|Lite3(Stmt|Result)?|Date(Time(Immutable|Zone)?|Interval|Period)|Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char)|(Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error|Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage)|DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction)|(Of(Range|Bounds)|(Function|Method)Call|Error|ClosedGenerator|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Phar|Intl|Sodium)?Exception|Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Exception|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber)?|((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator|Closure|Generator|Attribute|ReturnTypeWillChange|Fiber|DOMXPath|finfo|ArrayObject|SessionHandler|php_user_filter|Directory|SimpleXMLElement|PhpToken|GMP|Collator|Normalizer|Locale|ResourceBundle|Transliterator|Spoofchecker|UConverter) |-(Number|Message)Formatter |-(std|__PHP_Incomplete_)Class |-Re(SingleToken|Group) |-Weak(Reference|Map) |-(Inflate|Deflate|Hash)Context |-XML(Parser|Reader|Writer) |-Phar(Data|FileInfo)? |-PDO(Statement|Row)? |-Lite3(Stmt|Result)? |-Date(Time(Immutable|Zone)?|Interval|Period) |-Intl((Gregorian)?Calendar|Date(Formatter|PatternGenerator)|TimeZone|Char) |-(Compile|Parse|Type|ArgumentCount|Value|Arithmetic|DivisionByZero|UnhandledMatch|Fiber|LibXML|Assertion)?Error |-Spl((Priority)?Queue|File(Info|Object)|(Min|Max)?Heap|TempFileObject|DoublyLinkedList|Stack|FixedArray|ObjectStorage) |-DOM(Entity(Reference)?|Node(List)?|Document(Fragment|Type)?|Implementation|NameSpaceNode|NamedNodeMap|CharacterData|Attr|Element|Text|Comment|CdataSection|Notation|ProcessingInstruction) |-(Of(Range|Bounds)|(Function|Method)Call|Error|ClosedGenerator|DOM|Json|Logic|Domain|InvalidArgument|Length|Runtime|Overflow|Range|Underflow|UnexpectedValue|PDO|Phar|Intl|Sodium)?Exception |-Reflection((Zend)?Extension|Class(Constant)?|Function(Abstract)?|(Unit|Backed)Case|(Named|Union|Intersection)?Type|Exception|Generator|Parameter|Method|Object|Property|Reference|Attribute|Fiber)? |-((Callback)?Filter|Intl((RuleBased|CodePoint)?Break|Parts)?|Recursive((Callback)?Filter|Iterator|Caching|Regex|Tree|Array|Directory)|Internal|Iterator|Parent|Limit|Caching|NoRewind|Append|Infinite|Regex|Empty|Array|Directory|Filesystem|Glob|Multiple|SimpleXML)Iterator |-Closure |-Generator |-Attribute |-ReturnTypeWillChange |-Fiber |-DOMXPath |-finfo |-ArrayObject |-SessionHandler |-php_user_filter |-Directory |-SimpleXMLElement |-PhpToken |-GMP |-Collator |-Normalizer |-Locale |-ResourceBundle |-Transliterator |-Spoofchecker \-UConverter

preferences:
99.87 ms | 477 KiB | 5 Q