-6

简化了问题。

$var1 应该是“1245”

$var2 应该是“1345”

目的是在分配公共值(“1”、“4”、“5”)时 - 只需分配一次。

$var1="";
$var2="";

$var1.="1"; //need same content for $var2
$var1.="2"; //this is for var1 only
$var2.="3"; //this is for var2 only
$var1.="4"; //need same content for $var2
$var1.="5"; //need same content for $var2

这不是我要找的:

$var1="";
$var2="";

$var1.="1";
$var1.="2";
$var1.="4";
$var1.="5";

$var2.="1";
$var2.="3";
$var2.="4";
$var2.="5";

因为我希望以下分配在代码中只出现一次:

.="1";
.="4";
.="5";

我希望我是明确的。

编辑:试过这个:

$var1=""; $var2="";
$var2.=$var1.="1";
$var1.="2";
$var2.="3";
$var2.=$var1.="4";
$var2.=$var1.="5";

//$var1=>1245
//$var2=>131241245


$var1=""; $var2="";
$var1.=$var2.="1";
$var1.="2";
$var2.="3";
$var1.=$var2.="4";
$var1.=$var2.="5";

//$var1=>121341345
//$var2=>1345
4

5 回答 5

1

Try this:

$var1 = $var2 = "5";
$var1 = $var2 = "4" . $var2;
$var2 = "3" . $var2;
$var1 = "2" . $var1;
$var2 = "1" . $var2;
$var1 = "1" . $var1;
于 2013-07-19T19:08:41.530 回答
1

用这个:

$var1 = $var2 = "1245";
$var2[1] = "3";

或者:

$var1 = $var2 = '1';
$var1 = $var2 .= '2';
$var1 = $var2 .= '4';
$var1 = $var2 .= '5';
$var2[1] = '3';
于 2013-07-19T19:00:33.100 回答
0

您应该尝试将两个变量拆分为数组。

    $var1 = "1234";

    $var2 = "145";

    $tab1 = str_split($var1);
    $tab2 = str_split($var2);
    $tab3 = array();

    foreach($tab1 as $value){
     if(in_array($value, $tab2))
      {
        $tab3[] = $value;
      }

    }
return implode('', $tab3);
于 2013-07-19T19:01:04.117 回答
0

如果要修改的变量数量有限,则可以创建一个引用传递变量的辅助函数:

function append($append, &$var1, &$var2 = null) {
    $var1 .= $append;
    if ($var2 !== null) {
        $var2 .= $append;
    }
}

并像使用它一样

$var1 = $var2 = '';
append('1', $var1, $var2);
append('2', $var1);
append('3', $var2);
append('4', $var1, $var2);
append('5', $var1, $var2);

var_dump($var1,$var2);
于 2013-07-19T19:19:02.417 回答
-1

从其他答案开始,我想出了一个对我来说更舒服的解决方案:

$var1[]=$var2[]="1";
$var1[]="2";
$var2[]="3";
$var1[]=$var2[]="4";
$var1[]=$var2[]="5";
$var1=implode("",$var1);
$var2=implode("",$var2);

//$var1=1245
//$var2=1345
于 2013-07-19T19:27:07.253 回答