2016-07-05 52 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