連載
» 2018年10月09日 05時00分 公開

.NET開発者のためのPHPアプリお手軽開発入門:VS Codeでコードを書きながら、PHPの基礎構文を概観しよう (1/2)

VS CodeでPHPのコードを書きながら、その動作を確認し、その基礎構文とC#との違いなどを簡単に見ていこう。

[かわさきしんじ,Insider.NET編集部]
「.NET開発者のためのPHPアプリお手軽開発入門」のインデックス

連載「.NET開発者のためのPHPアプリお手軽開発入門」

 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]ボタンをクリックするだけだ)。

Hello World

 PHPで書いた典型的なHello Worldプログラムを以下に示す。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <?php echo "Hello World";?>
</body>
</html>


PHPで書いたHello World

 このコードをCode Runner拡張機能を使って実行した結果を以下に示す。

上に示したHello WorldをPHP処理系で実行した結果 上に示したHello WorldをPHP処理系で実行した結果

 画像の上半分が処理前のPHPコードを含んだHTML(hello.phpファイル)で、下半分がそれを処理した結果だ。これらの間で異なっているのは「<?php echo "Hello World"; ?>」という部分が「Hello World」になっているところだけだ。ここから次の2つが分かる。

  • PHPコードは「<?php」と「?>」の間に記述する(これらをPHPタグと呼ぶ)
  • echoは文字列を出力する

 「<?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のコードを記述していく。ただし、先頭の「<?php」は省略して表記する。また、演算子、データ型など、基本概念が.NET言語とそれほど変わらない要素については説明を省略する。データ型についてここで簡単に述べておくと、論理値、整数、浮動小数点数、文字列、配列、オブジェクトなどがサポートされているが、これらの扱いで注意すべき点があれば、連載の中で適宜触れることにする。

       1|2 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。