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