Php 两次相同的6行代码

Php 两次相同的6行代码,php,function,scope,Php,Function,Scope,我的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_el

我的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
当然,我可以定义一个新函数,但是在这里,我必须定义全局变量。如果我在用global?调用函数本身之前预先定义变量,等等


这就是为什么我在寻找在这种情况下是否存在比函数短的东西,例如预处理器复制/粘贴。

可能有很多可接受的解决方案,但有一个:

// 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函数-

类似这样的函数?只需将代码放在$VAR1所在的位置,并将该行中的编号更改为您希望它执行的迭代次数。

for ($i=1; $i<=2; $i++) {

$var1 = "";

}

我认为您必须向我们展示您的真实代码,以便能够告诉您如何进行优化it@Rizier123下面是需要调用两次的代码:。此代码导出$pageheader、$pagecontent、,$pagetitle和$linkurl。那么你的问题是返回变量?@Rizier123不是真的:我的问题不是真的问题是知道是否存在函数以外的东西来实现这一点……那么我认为除了将其包装在函数中并通过引用使用或返回变量之外,没有其他东西了。当然,PHP不是magicOf,我可以定义一个新函数,但在这里,我必须定义全局变量,我认为OP正在做一些他在这里没有展示给我们的事情@Rizier123我认为他的意思是使用全局变量,因为他不知道如何分配3个变量,只返回一个函数,这是通过列表实现的:^如果你是对的,那将是一个很好的猜测!我仍然猜OP有代码,他没有给我们看,这和这个有点不同here@b.enoit.be是的,我不知道怎么做:顺便说一句,这里的代码需要调用两次:pastebin.com/ERVmMsWZ。这段代码导出$pageheader、$pagecontent、$pagetitle和$linkurl.True,但我想知道是否有可能避免编写函数,只是想知道在PHP世界中是否有一些我以前从未去过的神奇地方:不,不是这个。我有一些代码在中间看到/ /另一个代码,和两个地方相同的代码被调用,是远远从另一个。然后写一个函数,你可以在这两个地方调用,或把代码在另一个文件,并把它包括在这两个地方。这两种方法都会奏效。