2014-04-10 55 views
0

有人能解釋爲什麼這是有用的,如果你永遠不能使用HtmlHelper關閉標籤?CakePHP HtmlHelper關閉標籤

// No text specified. 
<?php 
echo $this->Html->tag('span', null, array('class' => 'welcome')); 
?> 

// Output 
<span class="welcome"> 

在一個理想的世界裏,有一些方法來創建一個結束標記,如</span>

回答

2

好了,「有用」取決於它如何被使用。

首先,沒有HtmlHelper->closeTag函數,因爲標記函數包圍了內部的字符串(或元素)。例如

echo $this->Html->tag('span', "i'm a span", array('class' => 'welcome')); 

// Output 
<span class="welcome">i'm a span</span> 

有真的,如果上爲HtmlHelper打開和關閉功能標籤內有closeTag功能是沒有意義的。

很明顯,一個未封閉的<span>標籤也沒有那麼有用,而且這個例子不是最好的一個用來展示某種用途的東西(我知道它在蛋糕文檔中,而不是指責你)。

由於HTML不是XML,因此有時會出現未封閉的標籤(請檢查HTML specs)。在該鏈路是什麼被定義爲空隙元件,這是一個列表:

區域,基,BR,山口,命令,嵌入,小時,IMG,輸入,密鑰生成,鏈路,間PARAM ,源,跟蹤,WBR

小的方式下該鏈接的參考,它是寫

虛空元素只有一個開始標記;不能爲void元素指定結束標記。

Soooo ....你可能想這樣做。你可以寫一個複雜的,更多的字符數昂貴的命令<br>。也許你想寫在PHP中的整個.cpt視圖和正常字符串沒有回聲,只是純粹的PHP與HtmlHelper的優點(如轉義的HTML字符)。

所以,從理論上講,你可以做

echo $this->Html->tag('br', null, array()); 
echo $this->Html->tag('link', null, array()); 

,這將是有效的標籤。爲什麼要這麼做? *聳肩*誰知道。但是,你有選擇不好嗎?

此外,HtmlHelper可能使用該函數內部編寫其他標籤。我的意思是,也許HtmlHelper->img()使用HtmlHelper->tag('img', null),並且由於標記功能是公開的,所以您也會看到這個看似無用的選項。

我知道它聽起來並沒有那麼多「有用」,但它的數量還是很小的......

+1

謝謝。我猜你的最後一點是最「有用」的情況,這就是它的用途。顯然你對此有一些想法,所以我感謝你。非常深思熟慮。 – zmonteca