我的PHP代码中有两次相同的5行代码:
do_something1();
$myvar1 = something1();
do_something_else2();
$myvar2 = something2();
do_something_else3();
$myvar3 = something3();
// another code
// ...
// another code
do_something1();
$myvar1 = something1();
do_something_else2();
$myvar2 = something2();
do_something_else3();
$myvar3 = something3();
这样的人有可能避免重复吗?
@BEGINNING BLAH
do_something1();
$myvar1 = something1();
do_something_else2();
$myvar2 = something2();
do_something_else3();
$myvar3 = something3();
@END BLAH
// another code
// ...
// another code
@INSERT BLAH
当然,我可以定义一个新的function
,但是在这里,我必须定义global
个变量(我应该在使用{{1}调用函数本身之前预先定义变量}?)等。
这就是为什么我会在这种情况下查看是否存在比global
更短的内容,例如PREPROCESSOR复制/粘贴。
答案 0 :(得分:1)
可能有很多可接受的解决方案,但有一个:
// Here is the function doing the repetitive work
function blah(){
do_something1();
$myvar1 = something1();
do_something_else2();;
$myvar2 = something2();
do_something_else3();
$myvar3 = something3();
return array($myvar1,$myvar2,$myvar3);
}
// Now for the usage matching your above case
list($myvar1,$myvar2,$myvar3) = blah();
// another code
// ...
// another code
list($myvar1,$myvar2,$myvar3) = blah();
列表可以是一个非常有用的php函数 - http://php.net/manual/en/function.list.php
答案 1 :(得分:-1)
这样的东西?只需将代码放在$ var1所在的位置,然后将for行中间的数字更改为您希望它执行的迭代次数。
for ($i=1; $i<=2; $i++) {
$var1 = "";
}