Smarty中如何獲取數(shù)組的長度
前提假設(shè):
分配了一個(gè)數(shù)組array給Smarty,假設(shè)Smarty的分界符為'{' 和'}'。
在很多資料上都看到,在Smarty中要求數(shù)組的長度時(shí),可以用在數(shù)組后便加|count的方法調(diào)用。即通過{array|count}獲得array的長度。但是今天在寫模板時(shí),發(fā)現(xiàn)這樣得不到數(shù)組的長度,而只是得到一個(gè)返回的字符串Array。也就是說僅僅是返回了{(lán)array}的結(jié)果,而沒有返回其array的長度。
查看smarty\plugins文件夾,發(fā)現(xiàn)并沒有count的相關(guān)方法,也就是說,count是直接調(diào)用了php中的方法。
后來通過網(wǎng)絡(luò)上的資料,發(fā)現(xiàn)可以在count前面加@,從而正確的獲取數(shù)組的長度。再進(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í),可以通過加@來表示。
1、對(duì)類型為數(shù)組的方法進(jìn)行測試時(shí),發(fā)現(xiàn)不加@符號(hào)都會(huì)出錯(cuò)。比如:要對(duì)一個(gè)數(shù)組調(diào)用count方法求出數(shù)組的長度,就可以這樣調(diào)用{array|@count},而要對(duì)數(shù)組調(diào)用end方法得出數(shù)組的最后一組數(shù)據(jù)時(shí),則可以通過{array|@end}。
2、在對(duì)字符串的相關(guān)函數(shù)進(jìn)行測試,發(fā)現(xiàn)加不加@都可以正常的調(diào)用。
3、其他的尚未認(rèn)真測試。對(duì)于在smarty中調(diào)用復(fù)雜的php函數(shù)不予鼓勵(lì),因?yàn)镾marty的本意就是要實(shí)現(xiàn)代碼和模板分離,應(yīng)該認(rèn)定模板就是界面設(shè)計(jì)的人員用的,如果過多地加復(fù)雜邏輯,對(duì)他們來說就是一種折磨了。
探討Smarty中如何獲取數(shù)組的長度以及smarty調(diào)用php函數(shù)的詳解
2020-04-20 15:07PHP教程網(wǎng) PHP教程
本篇文章是對(duì)Smarty中如何獲取數(shù)組的長度以及smarty調(diào)用php函數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
延伸 · 閱讀
- 2022-03-10易語言一維數(shù)組用法詳解
- 2022-03-10Android中的JNI數(shù)組操作教程
- 2022-03-10C++數(shù)組的定義詳情
- 2022-03-08Ruby創(chuàng)建數(shù)組方法總結(jié)
- 2022-03-07易語言自編數(shù)組排序的方法
- 2022-03-06Java數(shù)組的去重
- PHP教程
PHP基于php_imagick_st-Q8.dll實(shí)現(xiàn)JPG合成GIF圖片的方法
這篇文章主要介紹了PHP基于php_imagick_st-Q8.dll實(shí)現(xiàn)JPG合成GIF圖片的方法,需要的朋友可以參考下 ...
- PHP教程
eclipse php wamp配置教程
這篇文章主要為大家詳細(xì)介紹了eclipse php wamp配置教程,極其簡單的php入門教程,感興趣的小伙伴們可以參考一下...
- PHP教程
PHP中使用匿名函數(shù)操作數(shù)據(jù)庫的例子
這篇文章主要介紹了PHP中使用匿名函數(shù)操作數(shù)據(jù)庫的例子,本文直接給出類的代碼、使用例子、繼承例子,需要的朋友可以參考下...
- PHP教程
php 數(shù)組元素快速去重
本篇文章主要介紹了php數(shù)組元素快速去重的方法,具有很好的參考價(jià)值。下面跟著小編一起來看下吧...
- PHP教程
Laravel框架使用Redis的方法詳解
這篇文章主要介紹了Laravel框架使用Redis的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Laravel框架中Redis數(shù)據(jù)庫配置、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以...
- PHP教程
PHP之使用swoole統(tǒng)計(jì)在線人數(shù)和ID案例講解
這篇文章主要介紹了PHP之使用swoole統(tǒng)計(jì)在線人數(shù)和ID案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參...
- PHP教程
PHP里8個(gè)鮮為人知的安全函數(shù)分析
這篇文章主要介紹了PHP里8個(gè)鮮為人知的安全函數(shù),較為詳細(xì)的分析了addslashes、htmlentities、htmlspecialchars及md5等函數(shù)在PHP程序設(shè)計(jì)安全中所起到重要作用,非常...
- PHP教程
PHP設(shè)計(jì)模式之迭代器模式Iterator實(shí)例分析【對(duì)象行為型】
這篇文章主要介紹了PHP設(shè)計(jì)模式之迭代器模式Iterator,結(jié)合實(shí)例形式分析了PHP迭代器模式Iterator相關(guān)概念、原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參...