検索
ホームページバックエンド開発PHPチュートリアルPHPテンプレートエンジンSmartyの組み込み関数の使い方についてセクションとセクションelse

PHPテンプレートエンジンSmartyの組み込み関数の使い方についてセクションとセクションelse

Jun 19, 2018 am 09:37 AM
phpsectionsmarty組み込み関数テンプレートエンジン

この記事では、PHPテンプレートエンジンSmartyの組み込み関数sectionとsectionelseの使い方を中心に、ループ処理におけるsectionとsectionelseの使い方をサンプル形式で詳しく解説しています。参照してください

この記事の例では、PHP テンプレート エンジン Smarty の組み込み関数セクションとセクションの使用方法について説明します。参考として、次のように全員と共有します。

セクションは、foreach 以外に Smarty テンプレートでループを処理するためのもう 1 つのソリューションです。セクションは、改良された foreach ステートメントに加えて、foreach よりも柔軟です。同じループ機能に加えて、ループの実行をより適切に制御するための多くの追加オプションも提供します。テンプレートでは、ペアのセクション タグを使用する必要があります。名前とループの 2 つの属性を設定する必要があります。セクションの属性については、次の表を参照してください。 #属性

タイプ#必須かどうか##説明# #namestring##n/ainteger#showbooleanNotrue

例を使用して、Smarty での {section} と {sectionelse} の使用法を示します。

アイデアの例: データベースからコンテンツを取得し、それを配列変数 $_html に割り当て、この配列変数をテンプレートに割り当て、テンプレート内の配列を走査します。

データベース、メインファイルindex.php、Smartyテンプレート初期化ファイルinit.inc.phpについては、前回の記事「PHPテンプレートエンジンSmarty組み込み関数foreachとforeachelseの使用状況の分析」を参照してください。

/ tpl/index.tpl

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>section,sectionelse</title>
</head>
<body>
 <table align="center" border="1" width="800">
  <tr>
   <th>编号(iteration)</th>
   <th>编号(rownum)</th>
   <th>姓名</th>
   <th>电子邮件</th>
   <th>添加时间</th>
  </tr>
  <{section loop=$data name="ls" max="100" start="0" step="2" }> <!-- 使用 section 遍历数组 $data,max 表示最多可以循环多少条,start 表示从哪个数组下标开始显示,step决定了循环的步长,如果设置为2,那么将遍历下标为0,2,4……的元素 -->
  <!-- 在此,我们做几个保留变量 $smarty.section 的操作 -->
    <!-- 当数据显示第一条的时候,第一行的表格背景为黄色,使用属性:first -->
    <!-- 当数据显示最后一条的时候,最后一行的表格背景为蓝色,使用属性:last -->
  <{if $smarty.section.ls.first}>
  <tr align="center" bgcolor="#FFFF00">
  <{elseif $smarty.section.ls.last}>
  <tr align="center" bgcolor="#0000FF">
  <{else}>
  <tr align="center">
  <{/if}>
   <td><{$smarty.section.ls.iteration}></td> <!-- iteration 是保留变量中显示行号的属性 -->
   <td><{$smarty.section.ls.rownum}></td> <!-- rownum 是保留变量中显示行号的属性 -->
   <td><{$data[ls].username}></td> <!-- 输出数组第二维下标为 username 的元素值 -->
   <td><{$data[ls].email}></td> <!-- 输出数组第二维下标为 email 的元素值 -->
   <td><{$data[ls].addTime}></td> <!-- 输出数组第二维下标为 addTime 的元素值 -->
  </tr>
  <{sectionelse}> <!-- 如果分配过来的数组没有内容的话,显示下面内容 -->
  <tr>
   <td colspan="5">对不起!暂时没有数据。</td>
  </tr>
  <{/section}>
  <{if $data}> <!-- 如果循环的次数不为空的话,那么使用 Smarty 的保留变量 {$smarty.section} 显示出循环的次数 -->
  <tr>
   <td align="center" colspan="5">循环的次数为:<{$smarty.section.ls.total}></td>
  </tr>
  <{/if}>
 </table>
</body>
</html>

実行結果:

セクション 実行できる変数ループ領域で使用できます

#デフォルト値 #Yes
##ループの名前 loop [$variable_name]Yes n/a
ループすることにしました 回数の変数名 start integerNo 0
値が負の数の場合、開始位置は配列内に 7 つの要素がある場合に計算されます。 -2 として開始すると、現在の配列を指すインデックスは 5 になります。不正な値 (ループ配列の下限を超える) は、最も近い正当な値に自動的に調整されます。 ##step integer No 1 この値は、たとえば、step=2 を指定すると、添え字 0、2、4 などの要素のみが走査されます。step が負の値の場合は、配列を後ろから前に走査します。 ##max
No 1 の最大実行数を設定します。 loop.
ループを表示するかどうかを決定します。
indexindex_previndex_nextiteration#firstcurrent セクション ループが初めて実行されるとき、この変数の値は true last現在のセクション ループが最後に実行されるとき、この変数の値は true になります。rownum が使用されるループの数を表示するためのこの属性は、反復のエイリアスです。loop の最後のループのインデックス値を表示するために使用されます。この値はループ内またはループ終了後に使用できます。 show は show のパラメータであり、ブール値は true です。 false に設定すると、ループは表示されません。 Sectionelse 句が指定されている場合、その句が表示されるかどうかは、ループの実行回数を表示するために使用される total の値にも依存します。このプロパティはループ内だけでなく、実行完了後にも呼び出すことができます。
#変数名

説明

は、現在のループのインデックスを 0 から表示するために使用されます (start 属性が設定されている場合は、ここから始まります)値)、毎回 1 ずつ増加します (ステップ属性が指定されている場合、この値によって決まります)
は、前の値を表示するために使用されます。ループの開始時のループ インデックス値は -1
は、ループが実行されるときに次のループ インデックス値を表示するために使用されます。前回、この値はまだ現在のインデックス値より 1 大きいです (ステップ属性が指定されている場合は、この値によって決定されます)
は次の目的で使用されます。ループ数を表示
上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

php で ob_start() を使用して出力と選択的出力をクリアする方法


実装方法php は Yunpian.net インターフェイスを呼び出し、テキスト メッセージを送信します


#

以上がPHPテンプレートエンジンSmartyの組み込み関数の使い方についてセクションとセクションelseの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションの概念を簡単に説明してください。PHPセッションの概念を簡単に説明してください。Apr 26, 2025 am 12:09 AM

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPセッションに保存されているすべての値をどのようにループしますか?PHPセッションに保存されているすべての値をどのようにループしますか?Apr 26, 2025 am 12:06 AM

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

ユーザー認証にセッションを使用する方法を説明します。ユーザー認証にセッションを使用する方法を説明します。Apr 26, 2025 am 12:04 AM

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

PHPセッションにユーザーの名前を保存する方法の例を挙げてください。PHPセッションにユーザーの名前を保存する方法の例を挙げてください。Apr 26, 2025 am 12:03 AM

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール