2015-10-04 79 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