初心者のためのfor forEach 構文の比較
〜PHP,Laravel ,Django,Express(Node.js)〜

簡単な処理でも使用する言語やフレームワークが異なると、ごっちゃになりますので、一旦ここで簡単な覚書としてメモします。

前提としてブログ投稿のような簡単なWebサイトを書いているとし、そのトップページで全件表示させ、投稿がない場合は"投稿がありません"と表示させたいとします。

Webアプリでの構文比較

PHP

(前提) pdoを使ってDatabaseにアクセス。そのときの設定値はPDO::ATTR_DEFAULT_FETCH_MODE => FETCH_OBJ です。
つまりDBデータをオブジェクトとして取得できるので、展開するときは"obj->プロパティ"のように矢印のような記号「->」でアクセスできます。

<? php if count($posts) != 0 : ?>
    <?php foreach ($posts as $post)  : ?>
          <li><?=  $post->title  ?></li>
    <?php endforeach;  ?>
<?php else : ?>
         <li>投稿がありません</li>
<? php endif; ?>

Laravel

@forelse ($posts as $post)
            <li>{{$post->title}}</li>
@empty
           <li>投稿がありません</li>
@endforelse

Django

Python、Javascriptでデータをアクセスするときは、"obj.プロパティ"のようにピリオド「.」でアクセスします。

{%  for post in posts %}
      <li>{{ post.title }}</li>
{% empty %}
      <li>投稿がありません</li>
{% endfor %}

Express(Node.js)

<%  if (posts.length) {   %>
         <%  posts.forEach(post => {    %>
               <li><%=  post.title  %></li>
          <% })     %>
<%   } else{   %>
             <li>投稿がありません</li>
<%   }   %>

以上です。単に並べただけですけど、その違いが確認できるかと思います。(・・;)

Follow me!