PHPの基本
- 評価
- クリップ 2
- VIEW 2,045
PHPの基本だと思うのですが、
未だにまだ違いがわかりません
以下のようなコードの場合、
====サンプルコード====
php /* The loop */ ?>
<?php $i==0; ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php if ( $i == 2 ) : ?>
表示したいコードを入力
<?php endif; ?>
<?php $i++ ?>
<?php endwhile; ?>
====サンプルコードここまで====
: と、; の違いは何でしょうか?
<?php $i==0; ?> は、;
<?php if ( $i == 2 ) : ?> は、:
<?php $i++ ?> は、何もなし
本で確認しても、
<?php
; ?>
このようにしか書いていないのです
よろしくお願い致します
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+7
<?php $i==0; ?> は、;
セミコロン(;
)は、PHPコードの区切りを示す文字です。
http://php.net/manual/ja/language.basic-syntax.instruction-separation.php
<?php if ( $i == 2 ) : ?> は、:
コロン(:
)は、PHPの制御構文(ご質問のコードの場合、if
文のこと)における波括弧({ }
)の別の書き方です。
http://php.net/manual/ja/control-structures.alternative-syntax.php
つまり、
<?php if ( $i == 2 ) : ?>
表示したいコードを入力
<?php endif; ?>
は
<?php if ( $i == 2 ) { ?>
表示したいコードを入力
<?php }; ?>
と同じ意味になります。
<?php $i++ ?> は、何もなし
これは単に、;
を省略しているだけです。
1つ目のリンクに、以下のように説明があります。
PHP コードブロックの終了タグには自動的にセミコロンが含まれていると 認識されます。 従って PHP コードの最終行にはセミコロンを記述する必要はありません。
「終了タグ」とは、?>
のことです。
http://php.net/manual/ja/language.basic-syntax.phptags.php
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
まず、通常PHPの一つの処理の終わりに;(セミコロン)が必要です。
でないと、Syntax errorが出ると思います。
ifやforeachの終わり(波括弧{}の後)には必要ありません。
test.php(phpファイルの場合)
毎行<?php ?>で囲まず、処理全体を囲めばOKです。
最後に;(セミコロン)を入れて下さい。
サンプルコードのwhileがどんな処理をしてるのかちょっとわからなかったのですが、
<?php
$i == 0;
while ( $i <= 2 ) { //$iが2を超えるまでループする
get_template_part( 'content', get_post_format() );
if ( $i == 2 ) {
//表示したいコードを入力
//例えば↓のように
echo '<h1>テスト</h1>';
} //ここがifの終わり
$i++;
} //ここがwhileの終わり
?>
質問の書き方ですが、先ほど先述した書き方のphpファイルとは違い、HTML内にphpの処理を入れるときによく使います。
test.html
HTMLのソースは普通に書いて、PHPの処理をするところだけを<?php ?>で囲みます。
<html>
<head>
<meta charset="utf-8">
<title>例です</title>
</head>
<?php $i == 0; ?>
<?php while ( $i <= 2 ): ?> //ここで、:(コロン)が{の役割を果たす
<?php get_template_part( 'content', get_post_format() ); ?>
<?php if ( $i == 2 ) : ?> //ここも同様に:(コロン)が{
<h1>テスト</h1> //HTMLファイルなので、HTMLソースはechoなどせずにそのまま書けばいい。
<?php endif; ?> //ここのendif;(セミコロン)がifの終わりの}の役割
<?php $i++ ?>
<?php endwhile; ?> //ここのendwhile;(セミコロン)がwhileの終わりの}の役割
</html>
HTMLはかなり適当ですが、こんな感じです。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.31%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/05/12 23:10
とても勉強になりました
ありがとうございます