ホームページ  >  記事  >  バックエンド開発  >  Smarty で配列の長さを取得する方法と、Smarty の php 関数呼び出しの詳細な説明について説明します_PHP チュートリアル

Smarty で配列の長さを取得する方法と、Smarty の php 関数呼び出しの詳細な説明について説明します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:04:49995ブラウズ

Smartyで配列の長さを取得する方法
前提条件:
Smartyの区切り文字が'{'と'}'であると仮定して、Smartyに配列配列を割り当てます。
Smarty で配列の長さを必要とする場合、配列の後に |count を追加するメソッド呼び出しを使用できることを多くの資料で見てきました。つまり、{array|count} を通じて配列の長さを取得します。しかし、今日テンプレートを書いていたときに、配列の長さを取得できず、返されるのは文字列配列だけであることがわかりました。つまり、{array} の結果のみを返しますが、配列の長さは返しません。

Smartyplugins フォルダーを確認すると、count 関連のメソッドが存在しないことがわかります。つまり、count は php のメソッドを直接呼び出しています。
その後、インターネット上の情報から、count の前に @ を追加すると、配列の長さを正しく取得できることがわかりました。さらにSmartyのソースコードを確認すると、Smartyは属性調整器以降のメソッド名を処理する際に、先頭に@が付いたメソッド名に対して特別な処理を行うことが分かりました。 そこで判断ですが、Smartyの属性調整部でphpで定義した関数を呼び出す場合は@を付けることで表現できます。

1.配列型のメソッドをテストしたところ、@記号を付けないとエラーが発生することが分かりました。 例: 配列の長さを調べるために配列に対して count メソッドを呼び出したい場合は、次のように {array|@count} を呼び出すことができます。また、配列に対して end メソッドを呼び出して配列の長さを確認したい場合は、配列内の最後のデータセットには、{array| @end} を使用できます。
2. 文字列関連の関数をテストしたところ、@ の有無にかかわらず正常に呼び出すことができることがわかりました。
3. その他はまだ慎重にテストされていません。 Smarty の本来の目的はコードとテンプレートを分離することであるため、複雑なロジックを追加しすぎるとインターフェイス設計者にとって問題になるため、smarty で複雑な php 関数を呼び出すことはお勧めできません。 . 一種の拷問。


www.bkjia.com本当http://www.bkjia.com/PHPjc/327747.html技術記事 Smarty で配列の長さを取得する方法 前提: Smarty の区切り文字を「{」と「}」として配列配列を Smarty に割り当てます。 Smarty で必要な数は多くの資料で見てきました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。