在一个递归函数中,设置静态变量前,需要先isset吗?
<?php
function test($array)
{
static $data = [];
//if (!isset($data)) {
// static $data = [];
//}
foreach ($array as $item) {
if (is_array($item)) {
test($item);
} else {
$data[] = $item;
}
}
}
$arr = [[1,2,3],3,4,[5,6]];
test($arr);
通常我是不会isset的,按照我的理解static不会定义第二遍
不需要,静态变量在递归中。可以作为缓存使用。 比如 求斐波那契数列,只会计算一次