PHPの基本文法
プログラミング言語は、書き方に若干の違いはあれど、大きな差があるわけではありません。JavaScriptの学習の成果は、ほとんどそのままPHPにも適用できます。
PHPの特徴
$
をつける
変数名の頭にPHPでは、変数名の最初には必ず$
をつける必要があります。JavaScriptと異なり、変数を宣言する必要はありません。代入文を記述すれば、変数は自動的に生成されます。
文字列リテラルのダブルクォートとシングルクォートが区別される
JavaScriptでは、文字列を表すとき、ダブルクォートで囲んでもシングルクォートで囲んでも差異はありませんでした。しかしながら、PHPにおいては、両者は厳密に区別されます。シングルクォートはごく普通の文字列リテラルなのですが、ダブルクォートはJavaScriptにおけるテンプレートリテラルに近く、$
記号から始まる文字列が自動的に変数として展開されます。以下のコードを実行してみましょう。
基本的にはシングルクォートを使用し、ダブルクォートは必要に応じて使用するのが良いでしょう。
基本構文
変数の使用と定数の宣言
PHPの定数は、数値、文字列、論理値と、配列のみに対して使用できます。JavaScriptのconst
のように、通常の変数と同じように使用することはできません。また、定数を使用する際は$
記号をつける必要がありません。
変数名は小文字のスネークケース(単語の区切りをアンダーバーで表記する手法)、定数名は大文字のスネークケースを使用しましょう。
配列(リスト)と連想配列
PHPの配列は、JavaScriptの配列と記法は似ていますが、配列に対する操作はメソッドではなく関数を用いて行います。
連想配列は「キー」+「値」形式のデータ構造です。JavaScriptオブジェクトと似ていますが、キー名にはクォーテーションが必要で、アクセスにはブラケット記法を使用する必要があります。配列とは似て非なるものです。
制御構文
PHPのif
文、while
文、for
文は至って標準的な形式です。
配列と連想配列の列挙
JavaScriptのfor of
と同じく、列挙可能な値を列挙するための構文が存在します。foreach文です。2種類の書き方があります。
foreach ($array as $value)
の形式では、配列(または連想配列)の値だけを取り出します。foreach ($array as $key => $value)
を使用すると、連想配列ではキーと値を、配列では添字と値を使用することができます。
関数の定義
こちらも至って一般的です。
クラスとアクセス修飾子
PHPのクラスでは、インスタンスのフィールドやメソッドへのアクセスのために、ドットの代わりに->
を使用します。これはおそらく、PHPにおけるドット記号は、文字列結合演算子(JavaScriptにおける+
)として利用されていたためだと考えられます。
また、PHPでは、フィールドやメソッドの定義の前にアクセス修飾子を付加することができます。PHPのアクセス修飾子は3種類で、
アクセス修飾子 | 意味 |
---|---|
public | 全ての場所からアクセス可能 |
private | クラスの定義内からのみアクセス可能 |
protected | クラスの定義内と、継承先のクラスの定義内からのみアクセス可能 |
が利用できます。上記の例の場合、name
フィールドはprivate
指定されていますので、
はエラーとなります。なお、フィールドのアクセス修飾子は省略できませんが、メソッドのアクセス修飾子は省略可能で、その場合は自動的にpublic
が指定されたものとみなされます。
その他、コンストラクタに__construct()
を使用する等、細かい違いがあります。
無名関数
JavaScriptと同様に、PHPでも無名関数が使用できます。
PHPの無名関数は、function ($引数1, $引数2, …) { 処理; }
の形式です。print_r
関数は、配列の中身を見やすい形式で出力してくれる便利関数です。
課題
2 ~ 100までの数値のうち、素数のみを選んで表示するプログラムを作成してください。