2015-10-04 65 views
3

PHP NOOB,我一直在这个代码整天工作,但无法找到任何好方法来解决它。PHP合并或连接字符串分配变量

这里是我的代码:

$priv = explode(',', '0,1,1'); 
$m = 'me'; 
for($i = 0; $i <= 2; $i++) 
{ 
    if($priv[$i] == '0') 
    { 
     $m.$i = 20; 
    } 
    else 
    { 
     $m.$i = 10; 
    } 
} 

我试图加入$m.$i在一起,并将其设置为20或10,但我最终me20me10代替me1 = 20me1 = 10当我回声$m.$i这是合法的,有没有做这项工作?

+1

'当我回声$ķ。 $ m这是合法的''$ k'在哪里? – user5173426

+0

啊,好吧,现在我想你的意思是'me0 = 20'? – user5173426

回答

5

$m.$i = 20;

这将分配$i = 20,然后用$m拼接它,因此你会看到me20

您需要的是$m . $i .= 20;。将它们连接在一起。

修正:

<?php 

    $priv = explode(',', '0,1,1'); 
    $m = 'me'; 
    for($i = 0; $i <= 2; $i++) 
    { 
     if($priv[$i] == '0') 
     { 
      echo $m . $i .= 20; 
     } 
     else 
     { 
     echo $m.$i .= 10; 
     } 
    } 
    ?> 

编辑:

以上回答是一种误解,我意识到你打算创建变量:

for($i = 0; $i <= 2; $i++) 
{ 
    if($priv[$i] == '0') 
    { 
     ${$m.$i} = 20; 
     echo $me0; 
    } 
    else 
    { 
     ${$m.$i} = 10; 
    } 
} 
+1

我想要$ m0 = 20或$ m0 = 10 –

+1

@ChrysUgwu Ahh Crap ..我刚刚意识到。在一分钟内修好它。 – user5173426

1

正在尝试动态地创建变量,所以你必须做这样的事情:

$priv = explode(',', '0,1,1'); 
$m = 'me'; 
for($i = 0; $i <= 2; $i++) 
{ 
    if($priv[$i] == '0') 
    { 
     ${$m.$i} = 20; 
    } 
    else 
    { 
     ${$m.$i} = 10; 
    } 
} 

然后尝试priny $ ME0,$ ME1