0

基本上我想实现这样的功能,即连续执行 5-10 个函数(像往常一样)。但是,如果收到特定的返回,我希望脚本后退几步(例如从第 5 步回到第 3 步)并继续进一步(如 4、5、6、7、8、9、10)。例子:

<?
function_1st();
function_2nd();
function_3rd();
function_4th();
$a = function_5th();
if($a == '3') //continue from 3rd further;
function_6th();
function_7th();
?>

就像在这种情况下,它应该是 1,2,3,4,5,3,4,5,6,7,8,9,10。在此使用面向对象编程(类)会更好吗?

基本上我只需要建议,如何以适当的方式做到这一点:)

问候,乔纳斯

4

5 回答 5

1

将所有功能包装在一个开关中,例如:

function run($n) {
    switch($n) {
      case 1: $a = func1(); break;
      case 2: $a = func2(); break;
      case 3: $a = func3(); break;
      case 4: $a = func4(); break;
      case 5: $a = func5(); break;
      case 6: $a = func6(); break;
      case 7: $a = func7(); break;
      case 8: $a = func8(); break;
      case 9: $a = func9(); break;
      default: return $a;
    }
    run($a ? $a : $n+1);
}
于 2010-10-07T20:16:02.467 回答
0

您可以将函数调用基于上一个函数返回

例子:

function one() {
   if()...
      return 'run function two';
   else 
      return 'run function four';
}
于 2010-10-07T20:06:48.543 回答
0
$步=1;
而($步< 99){
开关($步){
    情况1:
        $step=function_1();
        休息;
    案例2:
        $step=function_2();
        休息;
    案例3:
        $step=function_3();
        休息;
    ...
    案例9:
        $step=function_9();
        休息;
    默认:
        $步=99;
        }
    }
于 2010-10-07T20:16:58.960 回答
0

使用“变量函数”或“call_user_func() 函数”。我没有时间解释它,请谷歌搜索关键字。

于 2010-10-07T20:19:47.067 回答
0

你为什么需要这样做?您是说 $a 上的结果会有所不同,如果在调用 function_5() 之后对其调用 function_3() 然后它将通过对 function_5() 的检查?

一般来说,您可能需要重新考虑您的逻辑。

顺便说一句,不要使用短标签。写出

<?php
于 2010-10-08T04:32:44.057 回答