質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4650閲覧

PHPの基本

datasimblog

総合スコア31

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2016/05/12 13:04

編集2016/05/12 13:17

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 ; ?>

このようにしか書いていないのです
よろしくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

<?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

1<?php if ( $i == 2 ) : ?> 2 表示したいコードを入力 3<?php endif; ?>

php

1<?php if ( $i == 2 ) { ?> 2 表示したいコードを入力 3<?php }; ?>

と同じ意味になります。

<?php $i++ ?> は、何もなし

これは単に、;を省略しているだけです。
1つ目のリンクに、以下のように説明があります。

PHP コードブロックの終了タグには自動的にセミコロンが含まれていると 認識されます。 従って PHP コードの最終行にはセミコロンを記述する必要はありません。

「終了タグ」とは、?>のことです。
http://php.net/manual/ja/language.basic-syntax.phptags.php

投稿2016/05/12 13:45

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

datasimblog

2016/05/12 14:10

詳しくありがとうございます とても勉強になりました ありがとうございます
guest

0

まず、通常PHPの一つの処理の終わりに;(セミコロン)が必要です。
でないと、Syntax errorが出ると思います。
ifやforeachの終わり(波括弧{}の後)には必要ありません。

PHP

1test.php(phpファイルの場合) 2毎行<?php ?>で囲まず、処理全体を囲めばOKです。 3最後に;(セミコロン)を入れて下さい。 4 5サンプルコードのwhileがどんな処理をしてるのかちょっとわからなかったのですが、 6 7<?php 8 9$i == 0; 10 11while ( $i <= 2 ) { //$iが2を超えるまでループする 12 get_template_part( 'content', get_post_format() ); 13 14 if ( $i == 2 ) { 15 //表示したいコードを入力 16 //例えば↓のように 17 echo '<h1>テスト</h1>'; 18 } //ここがifの終わり 19 20 $i++; 21} //ここがwhileの終わり 22 23?>

質問の書き方ですが、先ほど先述した書き方のphpファイルとは違い、HTML内にphpの処理を入れるときによく使います。

HTML

1test.html 2HTMLのソースは普通に書いて、PHPの処理をするところだけを<?php ?>で囲みます。 3 4<html> 5<head> 6<meta charset="utf-8"> 7<title>例です</title> 8</head> 9 10<?php $i == 0; ?> 11<?php while ( $i <= 2 ): ?> //ここで、:(コロン)が{の役割を果たす 12<?php get_template_part( 'content', get_post_format() ); ?> 13 <?php if ( $i == 2 ) : ?> //ここも同様に:(コロン)が{ 14 <h1>テスト</h1> //HTMLファイルなので、HTMLソースはechoなどせずにそのまま書けばいい。 15 <?php endif; ?> //ここのendif;(セミコロン)がifの終わりの}の役割 16 <?php $i++ ?> 17<?php endwhile; ?> //ここのendwhile;(セミコロン)がwhileの終わりの}の役割 18 19</html>

HTMLはかなり適当ですが、こんな感じです。

投稿2016/05/12 14:09

編集2016/05/12 14:12
smnsmn

総合スコア175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KiyoshiMotoki

2016/05/12 14:33

横から失礼します。 誤解のないように補足させていただきますが、 > PHPファイルと、HTMLファイルでは、記述が違う というわけではありません。 HTMLコードを出力するファイルでも、"{ }" 形式の記述は可能です。 smnsmn様も > HTML内にphpの処理を入れるときに【よく使います】。 と、おっしゃっていますよね?
datasimblog

2016/05/12 15:04

そうですね > HTML内にphpの処理を入れるときに【よく使います】 と、ちゃんと書いてあるのに勘違いしていました ありがとうございます
smnsmn

2016/05/12 16:17 編集

KiyoshiMotoki 様 ご解説ありがとうございます。m(__)m datasimblog 様 はい、なので、HTML内でも、PHPの処理を 〜〜〜〜〜〜〜〜〜〜〜〜〜〜 <title>例えば</title> <?php   $hoge = array('りんご', 'みかん', 'ぶどう');   foreach ($hoge as $row) {      echo $row;   } ?> 〜〜〜〜〜〜〜〜〜〜〜〜〜〜 こんな風に書くことも出来ます。 ただ、HTMLとPHPが混同すると読みにくく、処理もわかりにくくなるので、 なるべくわかりやすく見やすくなるように、よく使う書き方で書いたりしますが、 できるならphpとhtmlファイルを分ける方がいいですね。 私も最初はめちゃくちゃに書いてました。(今もですが。) 意味や書き方がわかれば、自分なりに書けるようになると思います!
datasimblog

2016/05/13 00:21

ありがとうございます これからも勉強頑張ります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問