色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

探討Smarty中如何獲取數(shù)組的長(zhǎng)度以及smarty調(diào)用php函數(shù)的詳解

Smarty中如何獲取數(shù)組的長(zhǎng)度
前提假設(shè):
分配了一個(gè)數(shù)組array給Smarty,假設(shè)Smarty的分界符為'{' 和'}'。
在很多資料上都看到,在Smarty中要求數(shù)組的長(zhǎng)度時(shí),可以用在數(shù)組后便加|count的方法調(diào)用。即通過(guò){array|count}獲得array的長(zhǎng)度。但是今天在寫(xiě)模板時(shí),發(fā)現(xiàn)這樣得不到數(shù)組的長(zhǎng)度,而只是得到一個(gè)返回的字符串Array。也就是說(shuō)僅僅是返回了{(lán)array}的結(jié)果,而沒(méi)有返回其array的長(zhǎng)度。

查看smarty/plugins文件夾,發(fā)現(xiàn)并沒(méi)有count的相關(guān)方法,也就是說(shuō),count是直接調(diào)用了php中的方法。
后來(lái)通過(guò)網(wǎng)絡(luò)上的資料,發(fā)現(xiàn)可以在count前面加@,從而正確的獲取數(shù)組的長(zhǎng)度。再進(jìn)一步查看Smarty的源碼,發(fā)現(xiàn)Smarty對(duì)屬性調(diào)節(jié)器后邊的方法名進(jìn)行處理時(shí),會(huì)對(duì)前邊加@的進(jìn)行特殊處理。因此作出判斷:在Smarty中的屬性調(diào)節(jié)器中調(diào)用php中定義好的函數(shù)時(shí),可以通過(guò)加@來(lái)表示。

1、對(duì)類(lèi)型為數(shù)組的方法進(jìn)行測(cè)試時(shí),發(fā)現(xiàn)不加@符號(hào)都會(huì)出錯(cuò)。比如:要對(duì)一個(gè)數(shù)組調(diào)用count方法求出數(shù)組的長(zhǎng)度,就可以這樣調(diào)用{array|@count},而要對(duì)數(shù)組調(diào)用end方法得出數(shù)組的最后一組數(shù)據(jù)時(shí),則可以通過(guò){array|@end}。
2、在對(duì)字符串的相關(guān)函數(shù)進(jìn)行測(cè)試,發(fā)現(xiàn)加不加@都可以正常的調(diào)用。
3、其他的尚未認(rèn)真測(cè)試。對(duì)于在smarty中調(diào)用復(fù)雜的php函數(shù)不予鼓勵(lì),因?yàn)镾marty的本意就是要實(shí)現(xiàn)代碼和模板分離,應(yīng)該認(rèn)定模板就是界面設(shè)計(jì)的人員用的,如果過(guò)多地加復(fù)雜邏輯,對(duì)他們來(lái)說(shuō)就是一種折磨了。


 

php技術(shù)探討Smarty中如何獲取數(shù)組的長(zhǎng)度以及smarty調(diào)用php函數(shù)的詳解,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 井研县| 乐亭县| 贡嘎县| 日土县| 珲春市| 长岛县| 松江区| 濮阳县| 高青县| 平远县| 营山县| 文登市| 房产| 东阿县| 富蕴县| 崇阳县| 多伦县| 衢州市| 乡城县| 桂阳县| 永年县| 宁强县| 方正县| 荆州市| 淮北市| 繁昌县| 浪卡子县| 内乡县| 沈阳市| 深水埗区| 吉木乃县| 万盛区| 抚远县| 伊通| 二连浩特市| 三台县| 台北市| 玉树县| 蛟河市| 修文县| 巴青县|