如何从自身调用函数并从外部再次调用它

时间:2018-04-12 16:27:04

标签: php function

基本上我有一个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')将无法运行。如果我不从自身调用该函数,则第三个实例和任何其他实例将继续按预期运行。

因此,总而言之,似乎从该函数调用该函数会停止对该函数的任何进一步调用。这种行为有解决方案吗?

1 个答案:

答案 0 :(得分:1)

函数内部的逻辑很可能有问题,因为这个简单的递归示例工作正常。

<?php
function recursive( $arg )
{
    echo $arg;

    if( $arg === 1 )
    {
        recursive( 2 );
    }
}

recursive( 1 );
recursive( 3 );

产生

123