2013-02-28 4 views
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> 

Не понимая, где я пошло не так ...

ance

ответ

2

Вы фактически не обертываете class в кавычках. В противном случае ваш код в порядке.

Изменить это:

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

Для этого:

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

серьезно .. это меня подслушивало ... я знал, что это должно быть что-то глупое .. может быть, я очень сонный, работая поздно ночью .. спасибо приятелю ... – brucekaushik

+0

Бывает! Рад, что смог помочь – burmat

0

Отсутствующие двойные кавычки:

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

одиночные кавычки вокруг 'некоторый текст' не нужны.

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 
0

Цитирование является человеком-errorprone. Сочетание его с конкатенацией хуже. Попробуйте " с переменной интерполяции,

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

или HEREDOC синтаксис (обычно для длинных строк),

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

Это позволяет избежать рассеяния небольшие, легко спутать следы через код.

Смежные вопросы