PHPプログラミングの基礎を学ぶためのガイドです。ここでは短いコードでPHPの基礎となる変数や配列、 if
文や for
文といった制御構文、それから関数をの使い方について解説します。
サンプルプログラム
ここでは以下の8つのサンプルプログラムを取り上げます。
- データの出力
- 変数
- 配列(添字配列)
- 制御構文(for文)
- 制御構文(if文)
- 配列(連想配列)
- 関数
- まとめ
プログラミングがはじめての方でも、繰り返し2度、3度と練習すれば10分〜30分くらいで解けるようになると思います。習い始めの頃は反復練習も大切です。サンプルプログラムを真似て書くだけでも勉強になります。
またプログラミングの基礎といっても、初学者にとっては配列や関数など躓きやすいポイントがいくつかあります。本ガイドに沿って順番に学習を進めていくことで、自分の苦手なポイントをチェックすることもできるでしょう。
1 データの出力(sample1.php)
次のプログラムは画面(ターミナル)に Hello PHP
と出力するプログラムです。ファイル名は sample1.php
として任意のフォルダに保存します。
以降のサンプルプログラムはMac上で
/Users/your_name/Desktop/php-basic
ディレクトリ(フォルダ)に保存したものとします。
<?php
echo "Hello PHP";
?>
PHPで画面にデータを出力するには echo
命令を使います。上記のようにプログラムを記述すれば画面に Hello PHP
と出力できます。
プログラムの実行(Mac)
次にターミナルを開きます。ターミナル上でカレントフォルダを変更するために cd
コマンドを入力します。
$ cd /Users/your_name/Desktop/php-basic
ターミナル上で現在作業している(開いている)ディレクトリをカレントディレクトリ(カレントフォルダ)と呼びます。 cd
コマンドはカレントディレクトリを移動するコマンドです。ここではカレントディレクトリを /Users/your_name/Desktop/php-basic
に変更しています。
注意:自分のパソコンに合わせて上記のパス
/Users/your_name/Desktop/php-basic
を置き換えてください。
それでは作成したプログラムを実行してみましょう。ターミナル上で php
コマンドとファイル名を入力します。
$ php sample1.php
Hello PHP
上記のように Hello PHP
と出力されればOKです。
プログラムの実行(Windows)
次にコマンドプロンプトを開きます。コマンドプロンプト上でカレントフォルダを変更するために cd
コマンドを入力します。
$ cd C:¥Users¥your_name¥Desktop¥php-basic
コマンドプロンプト上で現在作業している(開いている)ディレクトリをカレントディレクトリ(カレントフォルダ)と呼びます。 cd
コマンドはカレントディレクトリを移動するコマンドです。ここではカレントディレクトリを C:¥Users¥your_name¥Desktop¥php-basic
に変更しています。
注意:自分のパソコンに合わせて上記のパス
/Users/your_name/Desktop/php-basic
を置き換えてください。
それでは作成したプログラムを実行してみましょう。ターミナル上で php
コマンドとファイル名を入力します。
$ php sample1.php
Hello PHP
上記のように Hello PHP
と出力されればOKです。
2 変数(sample2.php)
続いて変数を扱うプログラムについて見てみましょう。変数とはプログラム上でデータを扱う仕組みです。次のプログラムを sample2.php
という名前で保存します。
<?php
$name = "Andy";
echo "Hello ";
echo $name;
PHPプログラムの終端となる閉じタグ
?>
は省略できます。以降は?>
を省略してコードを記載します。
ここでは $name
という名前の変数を定義しています。また $name
変数の中に "Andy"
という文字列データを代入しています。PHPの文字列データは ""
(ダブルクォーテーション)あるいは ''
(シングルクォーテーション)で囲む必要があります。変数に格納したデータは echo
命令で出力できます。
PHPの変数は先頭に
$
マークが付きます。
それでは作成したプログラムを実行してみましょう。ターミナル上で php
コマンドを入力します。
$ php sample2.php
Hello Andy
上記のように Hello Andy
と出力されればOKです。
さて、もう一つ変数を扱うサンプルプログラムを考えてみましょう。先ほどのプログラムは Hello Andy
と出力しましたが、もう一人、登場人物として "Betty"
を追加してみましょう。先ほどのプログラム sample2.php
を修正します。
<?php
$name = "Andy";
$name2 = "Betty";
echo "Hello ";
echo $name;
echo "Hello ";
echo $name2;
変数が $name
と $name2
の2つになりました。変数 $name
には "Andy"
、 $name2
には "Betty"
がそれぞれ代入されています。
それでは作成したプログラムを実行してみましょう。ターミナル上で php
コマンドを入力します。
$ php sample2.php
Hello AndyHello Betty
上記のように画面に Hello AndyHello Betty
と出力されればOKです。ところでもう一人名前の出力を追加する場合はどうでしょうか。 "Andy"
、 "Betty"
、 "Carol"
のように名前を追加していくと、変数の数も多くなってしまいます。
3 配列(添字配列)(sample3.php)
続いて配列を扱うプログラムについて見てみましょう。配列は変数の一種で、関係性のある複数のデータをまとめて管理する仕組みです。たとえば先ほどの "Andy"
、 "Betty"
、 "Carol"
のような名前を表す3つのデータは配列を使うと簡単に管理できます。次のプログラムを sample3.php
という名前で保存します。
<?php
$names = ["Andy", "Betty", "Carol"];
echo "Hello ";
echo $names[0];
echo "Hello ";
echo $names[1];
echo "Hello ";
echo $names[2];
$names
変数には "Andy"
、 "Betty"
、 "Carol"
と3つのデータが代入されています。このように複数のデータをまとめて管理する仕組みを配列(添字配列)と呼びます。配列は前から順番に要素番号(インデックス)が割り振られます。また要素番号の先頭は 1
ではなく 0
から始まる点にも注意しておきましょう。
変数名が
$names
と複数形になっている点も注目してください。配列のような複数のデータを表現する変数は名前の付け方を工夫すると読みやすくなります。
それでは作成したプログラムを実行してみましょう。ターミナル上で php
コマンドを入力します。
$ php sample3.php
Hello AndyHello BettyHello Carol
上記のように出力されればOKです。
4 制御構文(for文)(sample4.php)
配列のような集合データは for
文などの繰り返し構造を使えば簡単に出力できます。次のプログラムを sample4.php
という名前で保存します。
<?php
$names = ["Andy", "Betty", "Carol"];
for ($i = 0; $i < 3; $i++) {
echo "Hello ";
echo $names[$i];
}
ここで繰り返し構造である for
文は $i
変数の値が 0
から 3
まで( 0
、 1
、 2
の間の計3回)処理を繰り返します。
for
文で扱う変数$i
はカウンター変数などと呼ばれます。変数$i
のiはincrement(増える)という単語の頭文字を意味しています。for ($i = 0; $i < 3; $i++)
とすると、変数$i
の初期値は0
となり、$i < 3
の条件が成立する間、処理(for
の後の{}
)を繰り返します。繰り返しが1回終了するごとに$i++
が実行されます。$i++
は$i
の値を1
増やすという処理なので、繰り返しの都度、変数$i
の値が1増えることになります。
それでは作成したプログラムを実行してみましょう。ターミナル上で php
コマンドを入力します。
$ php sample4.php
Hello AndyHello BettyHello Carol
上記のように出力されればOKです。
5 制御構文(if文)(sample5.php)
さきほどのプログラムを少し修正してみましょう。ここでは if
文を使って "Andy"
、 "Betty"
、 "Carol"
3人の名前の中から "Andy"
以外の名前を出力するように修正してみましょう。次のプログラムを sample5.php
という名前で保存します。
<?php
$names = ["Andy", "Betty", "Carol"];
for ($i = 0; $i < 3; $i++) {
if ($names[$i] != "Betty") {
echo "Hello ";
echo $names[$i];
}
}
for
文の中で、 if
文を使って変数( $names[$i]
)の値が "Betty"
でないことを確認しています。
if
文で利用している演算子!=
は左辺と右辺が等しくない場合に真(True)となります。等しいかどうかを比較する場合は==
を使います。!==
や===
といった演算子も大切ですが、これらについてはもう少しあとで学習しましょう。
それでは作成したプログラムを実行してみましょう。ターミナル上で php
コマンドを入力します。
$ php sample5.php
Hello AndyHello Carol
上記のように出力されればOKです。
if ($names[$i] == "Betty") {
と変更するとどうなるか確認してみましょう。
6 配列(連想配列)(sample6.php)
続いて配列の仲間である連想配列について学習します。ここではある学生の名前(name
)と年齢(age
)を扱うデータを考えてみましょう。次のプログラムを sample6.php
という名前で保存します。
<?php
$student = ["name" => "Andy", "age" => 20];
echo $student["name"];
echo $student["age"];
ある学生の名前(name
)と年齢(age
)のような関係性のあるデータを管理するためには連想配列を使います。PHPの連想配列はダブルアロー演算子 =>
を使って定義します。通常の配列(添字配列)は前から順番に要素番号(インデックス)が割り振られるのに対して、連想配列は要素番号ではなく、キー( "name"
や "age"
のような文字列)を割り振ります。
それでは作成したプログラムを実行してみましょう。ターミナル上で php
コマンドを入力します。
$ php sample6.php
Andy20
上記のように出力されればOKです。
7 関数(sample7.php)
本講座もいよいよ終盤です。ここでは関数について取り上げます。次のプログラムを sample7.php
という名前で保存します。
<?php
$student = ["name" => "Andy", "age" => 20];
echo strtoupper($student["name"]);
echo $student["age"];
関数は 関数名()
という構文で呼び出します。この ()
の部分に渡すデータを引数と呼び、引数は関数によって処理されます。また関数呼び出しによって返却されるデータを戻り値と呼びます。このプログラムは strtoupper
関数を呼び出して、引数に "Andy"
という文字列データを渡しています。strtoupper
関数は引数で受け取ったデータ( "Andy"
)をアルファベット大文字に置き換えて戻り値として返却します。
それでは作成したプログラムを実行してみましょう。ターミナル上で php
コマンドを入力します。
$ php sample7.php
Hello ANDYHello BETTYHello CAROL
上記のように出力されればOKです。
アルファベット小文字に変換するには
strtolower
関数を使います。PHPには他にも文字列を処理するための関数がたくさん用意されています。 https://www.php.net/manual/ja/ref.strings.php
8 まとめ(sample8.php)
最後にこれまでのまとめとして、配列(連想配列)や制御構造( for
文や if
文)、それから関数( strtoupper
)を使うプログラムを作成してみましょう。次のプログラムを sample8.php
という名前で保存します。
<?php
$students = [
["name" => "Andy", "age" => 20],
["name" => "Betty", "age" => 19],
["name" => "Carol", "age" => 21]
];
for ($i = 0; $i < count($students); $i++) {
if ($students[$i]["age"] >= 20) {
echo "Hello ";
echo strtoupper($students[$i]["name"]);
}
}
このプログラムでは $students
は2次元配列になっています。外側の配列は通常の配列(添字配列)で、配列の要素部分が連想配列になっています。このように配列を組み合わせることで次の表のようなデータ構造を定義しています。
"name" |
"age" |
---|---|
"Andy" | 20 |
"Betty" | 19 |
"Carol" | 21 |
そのあとの for
文では、$students
を行単位でループしています。for
文の条件式の部分では count
関数を呼び出しています。count($students)
とすることで戻り値に 3
という数値が返却されます。
count($students)
のように引数に2次元配列を渡すと、外側のは配列(添字配列)の要素数を返します。これは表に示したデータの行数に該当します。
それでは作成したプログラムを実行してみましょう。ターミナル上でphpコマンドを入力します。
$ php sample8.php
Hello ANDYHello CAROL
上記のように出力されればOKです。
おわりに
以上、駆け足でPHPプログラミングの基礎について解説しました。
わずかなプログラムでしたが、これだけでもPHPプログラミングの基礎的な概念は網羅できています。もし学習していて難しく感じたところがあれば上記のリンク先ページから詳細な内容について学ぶことができます。