如何在php中创建循环模板

Suj*_*wal 16 php c++

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

#define fo(a,b,c) for( a = ( b ); a < ( c ); ++ a )
Run Code Online (Sandbox Code Playgroud)

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

rjm*_*nro 12

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

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

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

  • @rjmunro,宏是可爱的.拥抱他们.(我更喜欢简单的文本替换.)PHP是一种非常简洁的语言,因此对它们的需求比其他语言要少,但它们对缩短和简化大量代码块非常有用,使其更具可读性.如果Objective-C没有宏,我就会变成杀人罪. (3认同)

Tad*_*eck 5

免责声明:嗯,这不是预处理器宏,但由于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.']';
});
Run Code Online (Sandbox Code Playgroud)

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

[2][3][4][5][6][7][8][9]
Run Code Online (Sandbox Code Playgroud)

  • -1这与预处理器宏不同. (15认同)