2016-07-05 50 views
-5

我试图在PHP中连接字符串时出现了一些显然很奇怪的行为*。PHP字符串连接 - 文本消失

我相比下来下面的代码显示问题所在:

class htmlElement 
{ 
    private $tagName; 
    public function __construct($tagName) 
    { 
     $this->setTagName($tagName); 
    } 
    public function setTagName($tagName) 
    { 
     $this->tagName = is_string($tagName) ? $tagName : NULL; 
    } 
    public function getTagName() 
    { 
     return (string)$this->tagName; 
    } 
    public function getHtml() 
    { 
     $tagName = $this->getTagName(); 
     $html = "<" . $tagName . "></" . $tagName . ">"; 
     return $html; 
    } 
} 
$div = new htmlElement("div"); 
var_dump($div->getHtml()); 

的VAR转储的结果是:

string(11) " 
" 

长度(11)似乎是正确的,但文本在哪里?

*我认为这并不是很奇怪的行为,而且我错过了一些非常明显的东西!

+1

您正在查看这个*在您的浏览器中*?然后浏览器试图将任何'<..>'字符串解释为HTML标签。看看原始数据源... – deceze

+0

无法复制:https://repl.it/C8k3 –

+1

检查它是这样的:'var_dump(htmlspecialchars($ div-> getHtml()));'您的浏览器'隐藏'它。 – FirstOne

回答

2

行为并不奇怪,文本里面有<div></div>。但是,当您在网络/移动浏览器中打印它时,它会呈现为HTML而不是纯文本。

演示:https://eval.in/600675

+0

啊哈!这显然不是我的问题所在。我会继续寻找! – user1187347

+0

是的,这是正确的。 –

+0

仅供参考我对自己感到非常失望 – user1187347

0

由于浏览器标签没有显示。您可以检查使用CMD。您的代码是好的。 enter image description here