And*_*rdu 14 php function call self-reference
我只是想确保我做得对,这不会造成任何疑虑.
我有一个自称的功能,如果可以或不这样做需要你的批准?
<?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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是数组:
$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>'
),
),
);
Run Code Online (Sandbox Code Playgroud)
这是最终的初始化:
echo '<ul>';
determine($the_array);
echo '</ul>';
Run Code Online (Sandbox Code Playgroud)
结果就是我想成为的样子,效果很好,但我不知道这是不是一个好习惯.
Flu*_*feh 35
递归函数是可以的 - 但如果你不确定你知道自己在做什么,那就太危险了.如果一个函数有可能在递归循环中结束(它一直在反复调用自己),你将会超时,内存耗尽或导致僵尸启示.
把递归电话想象成一把非常非常锋利的刀 - 在一位经验丰富的厨师手中,这是天堂里的一场比赛,在洗碗机的手中,这是一个等待发生的失落的手指.
PHP尝试玩得很好,并且默认情况下将递归深度限制为100(尽管可以更改)但是对于几乎所有情况,如果递归深度达到100,则事故已经发生并且PHP通过阻止任何其他行人来做出反应徘徊在交通中.:)
| 归档时间: |
|
| 查看次数: |
19726 次 |
| 最近记录: |