VS CodeでPHPのコードを書きながら、その動作を確認し、その基礎構文とC#との違いなどを簡単に見ていこう。
PHP(PHP: Hypertext Preprocessor)はオープンソースのスクリプト言語であり、Webアプリ開発がその主な用途となっている。PHPはHTMLへの埋め込みが可能であり、PHPコードはサーバサイドで実行され(て、ユーザーへと送信され)る。また、前回も見たように、「IISをはじめとする各種Webサーバと統合することで高速な実行が可能となる」「多くのデータベースを標準でサポートする」などがその特徴として挙げられる。
今回と次回は.NET開発者(とは、つまりC#などの言語を既に使いこなしている開発者)を対象に言語としてのPHPの特徴を駆け足で紹介していこう(前回準備した環境は今回と次回ではまだ使わない)。PHPをより詳しく学びたいという方は「Web業界で働くためのPHP入門」などをご覧になってほしい。本連載で取り上げるのは、あくまでも言語としてPHPの概要だ。連載を続けていく中で、説明が必要な言語要素についてはその場で紹介していく予定だ。
なお、Visual Studio Code(以下、VS Code)にCode Runner拡張機能をインストールすれば「本稿で取り上げたPHPコードをVS Codeで記述→Code Runner拡張機能でそのコードを実行」という流れで簡単に動作を確認できる。この拡張機能の基本的な使い方については「まだある! PHPプログラミングを支援する拡張機能」を参照されたい(基本的にはVS Codeウィンドウの右上にある[Run Code]ボタンをクリックするだけだ)。
PHPで書いた典型的なHello Worldプログラムを以下に示す。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php echo "Hello World";?>
</body>
</html>
このコードをCode Runner拡張機能を使って実行した結果を以下に示す。
画像の上半分が処理前のPHPコードを含んだHTML(hello.phpファイル)で、下半分がそれを処理した結果だ。これらの間で異なっているのは「<?php echo "Hello World"; ?>」という部分が「Hello World」になっているところだけだ。ここから次の2つが分かる。
「<?php echo …… ?>」は文字列出力というWebページ内では頻出する処理であることから短縮表記が用意されている。これを使用すると上のコードは次のように記述できる。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?="Hello World";?>
</body>
</html>
PHPとC#などの言語との違いの一つに文字列の連結がある。PHPでは文字列の連結に「.」演算子を使用する。この演算子を使用して、上のコードを記述すると次のようになる(変更点のみを示す)。
<?= "Hello".' World'."\n" ?>
上のコードは3つの文字列("Hello"、' World'、"\n")を連結するものだ。文字列を囲む引用符が2種類あることにも注意しよう。ダブルクオートで文字列を表現する場合、その内部に変数や特殊文字を含めると、それが解釈される。シングルクオートでは解釈されない。以下に例を示す。こちらの構文を使うと、行末にセミコロンが不要なことにも注意しよう。
<?= "Hello World"."\n" ?>
<?= "Hello World".'\n' ?>
2行目では、改行コードを出力するようにシングルクオートで囲んだ「\n」を文字列に連結している。が、このコードを実行すると次のように「\n」がそのまま出力される。
変数を使った場合についても見てみよう。PHPでは変数は「$変数名」という形で表記する。また、PHPは動的型付き言語であり、変数は型を持たないことにも注意されたい。以下に変数を利用した例を示す。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$msg = "World"."\n";
echo 'Hello $msg';
echo "Hello $msg";
?>
</body>
</html>
ここでは5行のPHPコードを記述している。「$msg = "World";」というのが変数の定義となる。C#では変数の宣言にはvarキーワードが必要だったが、PHPでは直接「$msg = ……」のようにして変数に何らかの値を代入可能だ。上のコードをCode Runner拡張機能を使って実行した結果を以下に示す。
先ほども述べた通り、シングルクオートで囲んだ文字列では変数$msgの値が展開されていないことに注意しよう。
ここまで、Hello Worldスクリプトを利用して、文字列の連結、ダブルクオート/シングルクオートで文字列を囲んだ場合の差、変数の定義と利用について簡単に見た。次に、PHPの言語要素について少し見ていこう。
なお、純粋にPHPコードだけで構成されるファイル(.phpファイル)では、終了タグ(?>)を付加しないことが推奨されている。これまではHTMLに埋め込む形でPHPコードを記述してきたが、PHPの文法を見ていくというだけであれば、以下のような記述が可能だ。
<?php
$msg = "World"."\n";
echo 'Hello $msg';
echo "Hello $msg";
次ページではこの形式でPHPのコードを記述していく。ただし、先頭の「<?php」は省略して表記する。また、演算子、データ型など、基本概念が.NET言語とそれほど変わらない要素については説明を省略する。データ型についてここで簡単に述べておくと、論理値、整数、浮動小数点数、文字列、配列、オブジェクトなどがサポートされているが、これらの扱いで注意すべき点があれば、連載の中で適宜触れることにする。
Copyright© Digital Advantage Corp. All Rights Reserved.