PHP递归函数内的静态变量
作者:matrix 被围观: 4,652 次 发布时间:2015-06-20 分类:兼容并蓄 零零星星 | 一条评论 »
这是一个创建于 3434 天前的主题,其中的信息可能已经有所发展或是发生改变。
//静态变量的例子
/**
* 将数组转换为字符
*
* 用于缓存
*
* @param $data
* @return string
*/
function philnaArray2String($data, $returns = '')
{
static $t = 1;
$tabType = " ";
$tab = str_repeat($tabType, $t);
$data = (array)$data;
foreach ($data as $key => $value) {
if (is_array($value)) {
$t++;
$returns .= "$tab'" . $key . "' => array(\n" . philnaArray2String($value) . "$tab),\n";
} else {
if (!is_bool($value)) {
$value = "'" . addslashes($value) . "'";
}
$returns .= "$tab'" . $key . "' => $value,\n";
}
}
$returns = substr_replace($returns, '', -2, -1);
return $returns;
}
说明:
上面php代码中的$t被static修饰,即为静态变量
静态变量在函数执行完毕后不会释放,会继续累加下去
赶脚非常合适在递归函数中用
PHP 不好弄啊