<?php
class Nil {}
class Leaf {
public function __construct(public int $value) {}
}
class Node {
public function __construct(public Tree $left, public Tree $right) {}
}
class Tree {
public function __construct(public Nil|Leaf|Node $val) {}
}
function depth(Tree $tree): int {
$val = $tree->val;
return match ($val::class) {
Nil::class => 0,
Leaf::class => 1,
Node::class => 1 + max(depth($val->left), depth($val->right)),
};
}
$treeExample = new Tree(new Node(
new Tree(new Leaf(5)),
new Tree(new Node(
new Tree(new Node(
new Tree(new Nil()),
new Tree(new Leaf(2)),
)),
new Tree(new Nil()),
))
));
print depth($treeExample);
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
4
Output for 7.3.0 - 7.3.25, 7.4.0 - 7.4.13
Parse error: syntax error, unexpected 'public' (T_PUBLIC), expecting variable (T_VARIABLE) in /in/KPDAY on line 5
Process exited with code 255.