我正在尝试实现一个类似容器的递归结构,我可以理解为什么普通循环 typedef 无法实现,但为什么以下内容也被禁止?
typedef cycle = shape('cycle' => ?cycle); // Cyclic typedef (Typing[4014])
创建一个似乎很容易:
$cycle = shape('cycle'=>shape('cycle'=> /* shape(... =>*/ null /* ...) */));
并且迭代一个也应该没有问题,对吧?
function recurse(cycle $cycle) {
if(!is_null($cycle['cycle'])) recurse($cycle['cycle']));
}