在tp6多應(yīng)用自定義taglib標(biāo)簽一文中我們用到一個方法沒有給詳細(xì)解釋,下面詳細(xì)解釋下。
$typeid = $this->varOrvalue($typeid);
// 代碼
/**
* 自動識別構(gòu)建變量,傳值可以使變量也可以是值
* @access private
* @param string $value 值或變量
* @return string
*/
private function varOrvalue($value)
{
$flag = substr($value, 0, 1);
if ('$' == $flag || ':' == $flag) {
$value = $this->autoBuildVar($value);
} else {
$value = str_replace('"', '\"', $value);
$value = '"' . $value . '"';
}
return $value;
}上面的方法就是在taglib循環(huán)嵌套的時候可以讓需要的屬性使用變量,在獲取tag值的時候用下面方法獲取
$typeid = !empty($tag['typeid']) ? $tag['typeid']: 0; $typeid = $this->varOrvalue($typeid);
在循環(huán)的時候用下面方法,隨便打個比方寫個標(biāo)簽
{ht:channel id="vo"}
{ht:article typeid="$vo.id" id="vo2"}
{$vo.title}-{$vo2.title}-{$vo2.id}
{/ht:article}
{/ht:channel}在article標(biāo)簽中我們在獲取typeid的時候使用了特殊方法,所以在給標(biāo)簽傳值的時候可以使用變量。channel標(biāo)簽好比文章的分類,在循環(huán)分類的時候調(diào)用article標(biāo)簽,把分類下的文章也調(diào)用了出來。

