0

这是我的代码...

<?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

4 回答 4

2

你实际上并没有class用引号括起来。否则,您的代码非常好。

改变这个:

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

对此:

$divHtml = '<div class="' . $setClass . '">' .'some text'. '</div>';
于 2013-02-28T18:33:50.803 回答
0

缺少双引号:

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

'some text' 周围的单引号不是必需的。

于 2013-02-28T18:35:22.723 回答
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
于 2013-02-28T18:36:33.090 回答
0

报价容易出现人为错误。将它与串联结合起来更糟。尝试"使用变量插值,

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

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

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

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

于 2013-02-28T18:39:53.853 回答