我只是想确保我做对了,这不会造成任何冲突。
我有一个函数可以自行调用,是否需要您的批准?
<?php
function determine($the_array){
foreach ($the_array as $key => $value) {
switch ($key) {
case 'in':
echo $value;
break;
case 'out':
echo $value;
break;
case 'level':
echo '<ul>';
determine($value);
echo '</ul>';
break;
}
}
}
这是数组:
$the_array = array(
'in' => '<li>Simple IN</li>',
'out' => '<li>Simple OUT</li>',
'level' => array(
'in' => '<li>Simple IN 2</li>',
'out' => '<li>Simple OUT 2</li>',
'level' => array(
'in' => '<li>Simple IN 3</li>',
'out' => '<li>Simple OUT 3</li>'
),
),
);
这是最后的初始化:
echo '<ul>';
determine($the_array);
echo '</ul>';
结果正是我想要的,效果很好,但我不知道这是否是一个好的做法。
最佳答案
递归函数没问题 - 但如果您不确定自己知道自己在做什么,则很危险。如果一个函数有任何可能会在递归循环中结束(它不断地反复调用自己),您将超时、耗尽内存或导致僵尸末日。
将递归调用想象成一把非常非常锋利的刀 - 在经验丰富的厨师手中,它是天作之合,在洗碗机手中,它就像是失去了手指等待发生。
PHP 试图表现得很好,默认情况下将递归深度限制为 100(尽管可以更改)但是对于几乎所有情况,如果您的递归深度达到 100,则事故已经发生并且 PHP 通过停止任何反应来使用react其他行人免于误入车流。 :)
关于php - 递归函数 : Call php function itself,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634775/