What are potential challenges when using recursive loops in PHP for tree structures?

One potential challenge when using recursive loops in PHP for tree structures is the risk of infinite recursion if not properly controlled. To solve this issue, you can implement a base case to stop the recursion when reaching the end of the tree structure.

function traverseTree($node) {
    // Base case to stop recursion
    if ($node == null) {
        return;
    }
    
    // Process current node
    echo $node->value . "\n";
    
    // Recursive call for left and right children
    traverseTree($node->left);
    traverseTree($node->right);
}

// Example tree structure
class Node {
    public $value;
    public $left;
    public $right;

    function __construct($value) {
        $this->value = $value;
        $this->left = null;
        $this->right = null;
    }
}

$root = new Node(1);
$root->left = new Node(2);
$root->right = new Node(3);
$root->left->left = new Node(4);
$root->left->right = new Node(5);

traverseTree($root);