【发布时间】:2011-12-24 16:40:52
【问题描述】:
$i = 1
echo '
<p class="paragraph$i">
</p>
'
++i
试图将变量插入回显字符串。上面的代码不起作用。如何将 php 变量迭代为 echo 字符串?
【问题讨论】:
$i = 1
echo '
<p class="paragraph$i">
</p>
'
++i
试图将变量插入回显字符串。上面的代码不起作用。如何将 php 变量迭代为 echo 字符串?
【问题讨论】:
单引号不会解析其中的 PHP 变量。使用双引号或使用点来扩展回声。
$variableName = 'Ralph';
echo 'Hello '.$variableName.'!';
或
echo "Hello $variableName!";
在你的情况下:
$i = 1;
echo '<p class="paragraph'.$i.'"></p>';
++i;
或
$i = 1;
echo "<p class='paragraph$i'></p>";
++i;
【讨论】:
在字符串中使用变量时始终使用双引号,并反斜杠除开头和结尾的任何其他双引号。您也可以使用如下方括号,以便更轻松地在字符串中找到变量并使它们看起来更清晰。
$var = 'my variable';
echo "I love ${var}";
或
$var = 'my variable';
echo "I love {$var}";
Above 将返回以下内容:I love my variable
【讨论】:
变量插值不会发生在单引号中。您需要使用双引号作为:
$i = 1
echo "<p class=\"paragraph$i\"></p>";
++i;
【讨论】:
echo '<p class="paragraph'.$i.'"></p>'
应该可以解决问题。
【讨论】:
echo '<p class="paragrah"' . $i . '">'
【讨论】:
echo '<p class="paragraph'.$i.'"></p>';
【讨论】:
这里有 3 种最佳方法。
方法一:
$x = '+3';
echo "1+2$x";
双引号 (") 允许您直接在其中传递变量。
方法二:
$x = '+3';
echo '1+2'.$x;
当您出于某种原因不想使用双引号时,请使用此方法。 (.) 基本上只是意味着“添加”。因此,如果您想添加类似 1+2+3+4+5 的内容并将变量放在中间,您需要做的就是:
$x = '+3';
echo '1+2'.$x.'+4+5';
方法三:(直接在被调用变量内部添加变量)
$x = '+3';
$y = '+4';
$z = '+5';
echo "1+2${"x".$y.$z}";
Output: 1+2+3+4+5
在这里,我们使用"." 将$y 和$z 添加到$x; {}
在渲染未定义之前优先考虑其中的工作
变量。
个人觉得这是一个非常有用的函数,可以调用如下函数:
//Add the Get request to a variable.
$x = $_GET['tool'];
//Edit: If you want this if to contain multiple $xresult's change the if's
//Conditon in the "()" to isset($get). Simple. Now just add $xresultprogram
//or whatever.
if($x == 'app') {
$xresultapp = 'User requested tool: App';
}
//Somewhere down far in HTML maybe...
echo ${"xresult".$x}; // so this outputs: $xresultapp's value
//Note: doing ${"xresult".$_GET['tool']} directly wont work.
//I believe this is because since some direct non-echo html was loaded
//before we got to this php section it cant load cause it has already
//Started loading client side HTML and JS.
如果 url 查询是:example.com?tool=app,这将输出 $xresultapp 的“用户请求的工具:应用程序”。您可以使用 else 语句进行修改,以定义在请求“app”以外的某个值时会发生什么。请记住,所有内容都区分大小写,因此如果他们请求大写的“App”,则不会输出$xresultapp。
【讨论】:
使用双引号:
$i = 1;
echo "
<p class=\"paragraph$i\">
</p>
";
++i;
【讨论】:
$i = 1;
echo "<p class='paragraph{$i}'></p>";
$i++;
【讨论】:
你可以试试这个
$i = 1
echo '<p class="paragraph'.$i.'"></p>';
++i;
【讨论】: