Я скопировал и вставил его и запустил код, который вы предоставили. Там не было никаких проблем. Я заметил, что здесь / сейчас документы, где не в кавычках. (http://php.net/manual/en/language.types.string.php) Кроме этого, похоже, нет проблем. Должна быть какая-то другая проблема. Что еще происходит с обработкой вывода? У вас есть выходное сообщение где-нибудь еще в вашем коде или комментариях?
Вот мой полный пример файла с именем index.php, за которым следует вывод в командной строке.
<?php
class abc
{
//Show concept detail
public function showConceptDetail($concept){
$msg ="";
switch ($concept) {
case 'class':
$msg = 'Hey, I am single line with spaces';
break;
default:
break;
}
return "alert('".$msg."')";
}
public function showListConcept(){
$a= '$this->showConceptDetail()';
$list = <<<LIST
<ul>
<li><a href="#" onClick= {$this->showConceptDetail('class')} >Class </a></li>
<li><a href="#">Object </a></li>
<li><a href="#">Member Variable </a></li>
<li><a href="#">Member function</a></li>
<li><a href="#">Inheritance</a></li>
<li><a href="#">Parent class</a></li>
<li><a href="#">Child Class</a></li>
<li><a href="#">Polymorphism</a></li>
<li><a href="#">Overloading</a></li>
<li><a href="#">Data Abstraction</a></li>
<li><a href="#">Encapsulation</a></li>
<li><a href="#">Constructor</a></li>
<li><a href="#">Destructor</a></li>
</ul>
LIST;
echo "List of POO concepts: ".$list;
}
}
$abc = new abc();
$abc->showListConcept();
?>
Затем с помощью командной строки.
sandbox>php index.php
List of POO concepts: <ul>
<li><a href="#" onClick= alert('Hey, I am single line with spaces') >Class </a></li>
<li><a href="#">Object </a></li>
<li><a href="#">Member Variable </a></li>
<li><a href="#">Member function</a></li>
<li><a href="#">Inheritance</a></li>
<li><a href="#">Parent class</a></li>
<li><a href="#">Child Class</a></li>
<li><a href="#">Polymorphism</a></li>
<li><a href="#">Overloading</a></li>
<li><a href="#">Data Abstraction</a></li>
<li><a href="#">Encapsulation</a></li>
<li><a href="#">Constructor</a></li>
<li><a href="#">Destructor</a></li>
</ul>
О второй мысли:
Что произойдет, если вы поставите кавычки вокруг предупреждения? HTML-парсеры автоматически добавляют = "", если кавычек нет.
OnClick = "{$ this-> showConceptDetail ( 'класс')}"