[英]Should I put a string variable in quotes or use the concatenation operator when dealing with strings in php?
[英]php merging or concatenation strings when assigning a variable
PHP NOOB,我一整天都在研究这段代码,但无法找到解决问题的好办法。
这是我的代码:
$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,但我最终me20
或me10
代替me1 = 20
或me1 = 10
时,我回声$m.$i
这是合法的,是有反正使这项工作?
$m.$i = 20;
这将指定$i = 20
,然后将它与$m
连接,因此你会看到me20
。
你需要的是$m . $i .= 20;
$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;
}
}
像这样分配它。
${$m.$i} = 20;
您正在尝试动态创建变量,因此您必须执行以下操作:
$priv = explode(',', '0,1,1');
$m = 'me';
for($i = 0; $i <= 2; $i++)
{
if($priv[$i] == '0')
{
${$m.$i} = 20;
}
else
{
${$m.$i} = 10;
}
}
然后尝试打印$ me0,$ me1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.