【问题标题】:Executing a function inside a variable X times在变量内执行函数 X 次
【发布时间】:2012-11-03 09:06:14
【问题描述】:

有以下代码:

switch ($options['algorythm'])
{
    case 'jigsaw':
        $result = $this->jigsaw($options['count'], $options['length']);
    break;
    case 'freddy':
        $result = $this->freddy($options['count'], $options['length'], $options['characters']);
    break;
}


for($i=0; $i < $options['count']; $i++)
{
    echo $result."<br/>";
}

如何在count 中定义的时间执行$result 中的函数?因为就目前而言,它只会重复多次相同的结果。

【问题讨论】:

  • 不清楚你想做什么。 $result 中没有任何内容依赖于 $i,因此您每次仍然会得到相同的结果。
  • 请注意,如果您将函数更改为接受选项哈希而不是枚举参数,您可以简单地在循环中使用 call_user_func(($this, $options['algorythm']), $options);
  • 哦,我明白了...谢谢@meagar 的提示

标签: php function for-loop


【解决方案1】:

最简单的方法是将switch 移动到循环中:

for($i=0; $i < $options['count']; $i++)
{
    switch ($options['algorythm'])
    {
        case 'jigsaw':
            $result = $this->jigsaw($options['count'], $options['length']);
        break;
        case 'freddy':
            $result = $this->freddy($options['count'], $options['length'], $options['characters']);
        break;
    }

    echo $result;
}

成功后,你可以尝试用call_user_func变聪明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2018-04-10
    相关资源
    最近更新 更多