如何在php中创建循环模板

2022-08-31 01:10:01

由于我们可以在C++中定义循环模板,以便缩短编码时间:

#define fo(a,b,c) for( a = ( b ); a < ( c ); ++ a )

有没有办法在PHP中做同样的事情?


答案 1

谢天谢地,没有。你可以做很多可怕的事情来制作不可读的PHP,但这不是其中之一。

默认情况下,PHP 不使用预处理器。作为一种动态语言,没有一个构建步骤可以让它作为其中的一部分运行。您可以使用像CCPP这样的第三方预处理器,当然您也可以编写自己的预处理器,但它们可能会大大改变您的工作流程。

PHP的一个有趣的预处理器是PiHiPi,它试图为语言添加有用的功能,如JSON,如数组语法,而不是每次都需要编写。不幸的是,作者已经拉走了它。array()


答案 2

免责声明:嗯,这并不完全是预处理器宏,但由于PHP的“动态”性质,不需要/使用预处理器。但是,您可以改为将函数包装在其他函数中,如下面的示例所示。

是的,您可以通过创建自己的函数来执行此操作,该函数也传递回调。下面是一个示例:

// FO function
function fo($b, $c, $callback) {
    for ($a = $b; $a < $c; ++$a) {
        $callback($a);
    }
}

// example of usage
fo(2,10, function($a){
    echo '['.$a.']';
});

上面的代码在 PHP 5.3 中工作,并输出以下内容:

[2][3][4][5][6][7][8][9]

推荐