PHP - BASIC - 1. Hello PHP! - 2. PHPタグ

引き続きPHPプログラムの書き方について学習していきましょう。PHPプログラムはPHPの開始タグ <?php と終了タグ ?> の中に記述します。プログラムが複数行になる場合は開始タグ <?php と終了タグ ?> の間に Enter キーで改行を入れながらプログラムを作成していきます。次のプログラム( basic2.php )を作成してみましょう。

<?php
echo "Hello PHP";
echo "Hello Python";
echo "Hello Java";
?>

それでは作成したプログラムを実行してみましょう。

$ php basic2.php
Hello PHPHello PythonHello Java

PHPの開始タグ <?php と終了タグ ?> の中に記述した命令が上から順番に処理されているのがわかります。

PHPタグの外側

PHPの開始タグ <?php と終了タグ ?> の外側には任意のテキストを記述できます。次のプログラム( basic3.php )を作成してみましょう。

Hello Python
<?php
echo "Hello PHP";
?>
Hello Java

作成したプログラムを実行してみましょう。

$ php basic3.php
Hello Python
Hello PHPHello Java

PHPの開始タグ <?php と終了タグ ?> の外側に記述した内容がそのまま出力されているのがわかります。このようにPHPの開始タグ <?php と終了タグ ?> の外側は、記述した内容がそのまま出力されるようになっています。それでは次のプログラム( basic4.php )はどうでしょうか。

Hello Python

<?php
echo "Hello PHP";
?>
Hello Java

上記のプログラムにはいくつかの改行が追加されています。作成したプログラムを実行してみましょう。

$ php basic4.php
Hello Python

Hello PHPHello Java

実行結果を見ると改行も正しく出力されているのがわかります。なぜこのような仕組みになっているかというと、PHPは後で学習するHTMLと相性の良いプログラミング言語になっているからです。ここでは少し背伸びをして、次のプログラム( basic5.php )を作成してみましょう。

<?php
$title = "Hello PHP";
?>
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title><?php echo $title ?></title>
  </head>
  <body>
    <h1><?php echo $title ?></h1>
  </body>
</html>

このプログラムは変数やHTMLを活用したプログラムです。現時点ではざっくり見ておいてもらえれば大丈夫ですが、1点注意して見てほしいのは、HTMLプログラムの中にPHPプログラムを挿入するようにプログラミングしているところです。たとえば <title> タグや <h1> タグの中でPHPプログラムが記述されています。

<title><?php echo $title ?></title>
<h1><?php echo $title ?></h1>

1行でPHPプログラムを記述する場合は、処理の終端のセミコロン; を省略可能です。

いずれも変数 $title に入力された値( "Hello PHP" )を echo 命令で出力しています。それでは作成したプログラムを実行してみましょう。

$ php basic5.php
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>Hello PHP</title>
  </head>
  <body>
    <h1>Hello PHP</h1>
  </body>
</html>

HTMLの <title> タグや <h1> タグの中身がPHPによって出力されているのがわかります。

終了タグの省略

ここまで見てきたようにPHPの開始 <?php 、終了タグ ?> の仕組みを理解しておかないと、プログラムの出力結果が変わってしまいます。たとえば次のプログラム( basic6.php )を見てみましょう。

<?php
echo "Hello PHP";
?>

 

 
PHPの終了タグ ?> の下に不要な改行が複数入力されています。実際にはプログラミングをしていると考える時間が多くなるので、無意識のうちに Enter キーをタイプしてしまうこともあります。プログラムを実行すると当然、次のように出力されてしまいます。

$ php basic6.php
Hello PHP 

 

 
実行結果に不要な改行が出力されている点に注意してください。私たち人間からすると些細な問題のように感じますが、ソフトウェア開発の世界では、出力結果に不要な改行が含まれることで、プログラムが正しく動作しない、というケースもありえます。

このようなケースを想定してPHPのプログラムでは、ファイルの終端においては終了タグ ?> を省略することが許されています。次のプログラム( basic7.php )を作成してみましょう。

<?php
echo "Hello PHP";

 

 
PHPの終了タグ ?> を省略している点に注意してください。またPHPタグの中の改行は、出力に影響を与えないので無視されます。

プログラムを実行すると次のように出力されます。

$ php basic7.php
Hello PHP

実行結果に不要な改行が含まれていない点に注意してください。

このようにPHPプログラムでは意図的に終了タグ ?> を省略することが多くあります。以降の解説では特に必要のない限り、終了タグ ?> を省略して解説を進めます。

まとめ

  • PHPタグの内側はPHPのパーサによって解析される
  • PHPタグの外側はPHPのパーサに無視される(通常のテキストとして出力される)
  • ファイルの末尾にある終了タグ ?> は省略できる