我们可以在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()每次都需要编写.不幸的是,作者已经取消了它.
免责声明:嗯,这不是预处理器宏,但由于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)
| 归档时间: |
|
| 查看次数: |
5780 次 |
| 最近记录: |