private function addVariableChildNode(VariableTrieNode $childNode): void
    {
        // Try to find a variable child whose parts match the input child's parts
        // If we find one, then we merge its routes and add all its children
        $matchingChildNode = null;

        foreach ($this->variableChildren as $variableChildNode) {
            // Purposely doing a loose check here because we don't care about reference equality
            if ($variableChildNode->parts == $childNode->parts) {
                $matchingChildNode = $variableChildNode;
                $variableChildNode->routes = \array_merge($variableChildNode->routes, $childNode->routes);
                break;
            }
        }

        if ($matchingChildNode === null) {
            $this->variableChildren[] = $childNode;
        } else {
            foreach ($childNode->getAllChildren() as $grandChildNode) {
                $matchingChildNode->addChild($grandChildNode);
            }
        }
    }
private function addVariableChildNode(VariableTrieNode $childNode): void
    {
        // Try to find a variable child whose parts match the input child's parts
        // If we find one, then we merge its routes and add all its children
        $matchingChildNode = null;

        foreach ($this->variableChildren as $variableChildNode) {
            // Purposely doing a loose check here because we don't care about reference equality
            if ($variableChildNode->parts == $childNode->parts) {
                $matchingChildNode = $variableChildNode;
                $variableChildNode->routes = \array_merge($variableChildNode->routes, $childNode->routes);
                break;
            }
        }

        if ($matchingChildNode === null) {
            $this->variableChildren[] = $childNode;
        } else {
            foreach ($childNode->getAllChildren() as $grandChildNode) {
                $matchingChildNode->addChild($grandChildNode);
            }
        }
    }
private function addVariableChildNode ( VariableTrieNode $ childNode ) : void { // Try to find a variable child whose parts match the input child's parts // If we find one, then we merge its routes and add all its children $ matchingChildNode = null ; foreach ( $ this -> variableChildren as $ variableChildNode ) { // Purposely doing a loose check here because we don't care about reference equality if ( $ variableChildNode -> parts == $ childNode -> parts ) { $ matchingChildNode = $ variableChildNode ; $ variableChildNode -> routes = \ array_merge ( $ variableChildNode -> routes , $ childNode -> routes ) ; break ; } } if ( $ matchingChildNode === null ) { $ this -> variableChildren [ ] = $ childNode ; } else { foreach ( $ childNode -> getAllChildren ( ) as $ grandChildNode ) { $ matchingChildNode -> addChild ( $ grandChildNode ) ; } } }
Adds a variable child node

@param VariableTrieNode $childNode The child node to add
Adds a variable child node