在tp6多應(yīng)用自定義taglib標(biāo)簽一文中我們用到一個(gè)方法沒(méi)有給詳細(xì)解釋?zhuān)旅嬖敿?xì)解釋下。
$typeid = $this->varOrvalue($typeid); // 代碼 /** * 自動(dòng)識(shí)別構(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)嵌套的時(shí)候可以讓需要的屬性使用變量,在獲取tag值的時(shí)候用下面方法獲取
$typeid = !empty($tag['typeid']) ? $tag['typeid']: 0; $typeid = $this->varOrvalue($typeid);
在循環(huán)的時(shí)候用下面方法,隨便打個(gè)比方寫(xiě)個(gè)標(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)簽中我們?cè)讷@取typeid的時(shí)候使用了特殊方法,所以在給標(biāo)簽傳值的時(shí)候可以使用變量。channel標(biāo)簽好比文章的分類(lèi),在循環(huán)分類(lèi)的時(shí)候調(diào)用article標(biāo)簽,把分類(lèi)下的文章也調(diào)用了出來(lái)。