知らないと働けないPHPの基本文法/構文と注意点:Web業界で働くためのPHP入門(2)(2/2 ページ)
オープンソースのWeb開発向けスクリプト言語「PHP」の文法を一から学ぶための入門連載。今回は、PHPタグのさまざまな書き方、文の区切り方、コメントの書き方に加え、エラーが起きたときのポイントなど注意点を幾つか解説します【PHP 7.1含め2017年の情報に合うように対応】。
エラーが起きたときのポイント
いままでは正常に実行された場合を見てきました。ですが、エラーが起きたらどうなるでしょうか。hello.phpの「print」命令を間違えて「ptint」などと書いてしまったとしましょう。これを実行すると以下のように表示されます。
まずここで確認してもらいたいのは、下記の部分です。
C:\xampp\htdocs\phplesson\chap01\hello.php:8
ここに、エラーが発生したファイルとその行数が書かれています。hello.phpファイルの上から8行目と分かります。まずはこの情報を手掛かりに、それより前のメッセージを読みつつ、エラーを取り除いていきます。
「Fatal error」は「PHPのコードを実行したときに発生した致命的なエラー」ということです。
次に、「Uncaught Error」は「エラー対応していない」という意味です。PHP 7以前では、致命的なエラーが発生した場合、対処方法はなく、できるだけ発生しないようにコーディングするしかありませんでした。ところが、PHP 7以降では、致命的なエラーが発生しても、それを検知して対処できる仕組みが組み込まれました。「Uncaught Error」は、その対処が施されていないという意味です。こちらは現段階では難しい内容ですので、「こんなのがあるんだ」と頭の隅に置いておいてもらうだけで問題ありません。
その次の「Call to undefined function ptint()」は、「ptint()」という「定義されていない関数を呼び出している」という意味です。「関数」は、この連載中に解説していきますが、現段階では「命令」と思っておいてください。このメッセージを読めば、「ptint()」が記述ミスであることが読み取れます。これを元に、ソースコードを修正して、バグを取り除いていきます。これを「デバッグ」と言います。
PHPの書き方の基本
ここからは、具体的な文法の解説に入っていきます。今回は、ごくごく基本的な内容です。
PHPにおける文の区切り方
文の区切りにはセミコロン「;」を使います。また、文の間の空行や空白文字は無視されます。例えば、次のようになります。
<?php print("line 1."); print("line 2."); print("line 3."); ?>
文の区切りには、必ずしも改行を使う必要はなく、次のようにしても文法上は問題ありません。
<?php print("line 1.");print("line 2."); print("line 3."); ?>
しかしコードが非常に見づらくなってバグの温床となるだけで、メリットが全くありませんので、こういう書き方はしてはいけません。
文の区切りでセミコロンを省略できる場合
PHPタグ内の最後の文については、セミコロンを省略できます。chap01/hello.phpを見ると、1つの文ですが省略されていることが分かります。しかし、省略するのは、下記のように1行で書く場合に限定しておきましょう。
<?php … ?>
つまり、次のように書くのは文法上は正しくても、やってはいけない部類の書き方ということになります
<?php print("line 1."); print("line 2.") ?>
なぜかというと、上記の例の末尾にコードを追加する場合に、セミコロンを忘れてしまう可能性があるためです。わざわざ意図的に省略してもメリットはないので、常にセミコロンを入れるようにしましょう。
一般的にプログラミングでは、こういった「区切り文字」の入れ忘れは、文法エラーとなるだけではなく、エラーにはならず意図しない動きをすることもあります。そうなると、問題解決に手間取ることになります。常に入れておく癖を付けておけば、そういったことは防げます。
PHPのコメントの書き方
およそ、どのようなプログラミング言語でも、コードとして実行されない「コメント」を入れるための書き方があります。PHPの場合は3種類の方法があります。
<?php // 1. 1行コメント print("Hello World!"); // 行末に置くこともできます # 2. 1行コメント print("Hello World!"); # 行末に置くこともできます /* 3. 複数行コメント 複数行コメント */ ?>
1行コメントが2種類ありますが、1番目の方法を使うのが一般的です。本連載でも、この方法を主に使うことにします。
注意点として、3番目の複数行の方法は「ネスト(入れ子)」になってはいけません。コメントの中にコメントを入れてはいけない、ということです。例えば、以下のような記述です。
/* 3. 複数行コメント /* 入れ子のコメント */ 複数行コメント */
この例では、2行目のコメント終わりのマークでコメントが終わると解釈され、3行目がコメントになりません。
次回は変数や定数、基本的なリテラルの表記法について
今回はPHPの基本的な書き方、およびエラーの読み方を扱いました。次回からは、変数や定数、基本的なリテラルの表記法など、さらに具体的なPHPの文法について解説していきます。
今回のサンプルコード
■更新履歴
【2014/3/13】初版公開(山口晴広,株式会社イメージズ・アンド・ワーズ)。
【2017/4/10】PHP 7.1含め2017年の情報に合うように対応(齊藤新三/山田祥寛(監修),WINGSプロジェクト)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- WordPress活用に欠かせない、PHPをWindowsにダウンロードしてインストール、アンインストールする
本連載では、さまざまなソフトウェアのインストール、実行するためのセットアップ設定、実行確認、アンインストールの手順を解説する。今回は、PHPとは何か、PHPで動くツールの紹介、PHPのインストールとアンインストールについて解説。PHPプログラミングを始める参考にしてほしい。 - PHPにおけるクラスの書き方と呼び出し方――インスタンス、メソッド、プロパティ
「PHPで、どのようにオブジェクト指向プログラミングをしていくか」を解説する連載。初回は、「クラス」の書き方と簡単な使い方、メソッド/クラス定義内関数、プロパティ/クラス定義内変数、マルチプルインスタンスについて紹介します。 - PHP(スクリプト言語)
PHPは、HTMLへの埋め込みが可能なスクリプト言語(およびその処理系)。主としてWebアプリ開発に使用される。