基本上我有一个if条件(在其中)的函数if if为true,它会再次调用该函数。之后,再次调用该函数,但是从外部调用。
这是解释问题的函数的最小版本:
function products($arg) {
// do stuff here
if($some_variable == '1') {
products('arg-2');
}
}
products('arg-1');
products('arg-3');
函数products('arg-1')
的第一个实例成功运行。
第二个实例products('arg-2')
成功运行。
在调用第二个实例(从函数内部调用)之后,第三个实例products('arg-3')
将无法运行。如果我不从自身调用该函数,则第三个实例和任何其他实例将继续按预期运行。
因此,总而言之,似乎从该函数调用该函数会停止对该函数的任何进一步调用。这种行为有解决方案吗?
答案 0 :(得分:1)
函数内部的逻辑很可能有问题,因为这个简单的递归示例工作正常。
<?php
function recursive( $arg )
{
echo $arg;
if( $arg === 1 )
{
recursive( 2 );
}
}
recursive( 1 );
recursive( 3 );
产生
123