连接时出错

时间:2013-02-28 18:30:48

标签: php concatenation

这是我的代码......

<?php

$j = 1;
$imgClass = "cname";
$imgSet = 'imgSet'.$j;
$setClass = $imgSet.' '.$imgClass;

$divHtml = '<div class=' . $setClass . '>' .'some text'. '</div>';

echo $divHtml;

?>

期望的输出是:

<div class="imgSet1 cname">some text</div>

当前输出为:

<div class="imgSet1" cname="">some text</div>

不明白我哪里出错......

提前致谢

4 个答案:

答案 0 :(得分:2)

您实际上并没有将class包装在引号中。你的代码完全没问题。

改变这个:

$divHtml = '<div class=' . $setClass . '>' .'some text'. '</div>';

对此:

$divHtml = '<div class="' . $setClass . '">' .'some text'. '</div>';

答案 1 :(得分:0)

缺少双引号:

$divHtml = '<div class="' . $setClass . '">some text</div>';

“一些文字”周围的单引号不是必需的。

答案 2 :(得分:0)

让我们破解你的代码:

$j = 1;
$imgClass = "cname";
$imgSet = 'imgSet'.$j; // "imgSet1"
$setClass = $imgSet.' '.$imgClass; // "imgSet1 cname"

$divHtml = '<div class=' . $setClass . '>' .'some text'. '</div>'; // "<div class=imgSet1 cname>some text</div>"

特别仔细查看变量究竟是什么。

我建议:

$divHtml = "<div class='$setClass'>some text</div>"; // or use =\"..\" in class

答案 3 :(得分:0)

引用是人为错误。将它与串联相结合更糟糕。尝试使用变量插值"

 $divHtml = "<div class='$setClass'>some text</div>";

HEREDOC语法(通常用于更长的字符串),

$divHtml = <<<EOD
    <div class='$setClass'>some text</div>;
EOD;

这样可以避免在代码中散布小的,容易混淆的标记。