CODE-U - はじめてのPHPプログラミング - 超速習 - PHPプログラミング(基礎編)

PHPプログラミングの基礎を学ぶためのガイドです。ここでは短いコードでPHPの基礎となる変数や配列、 if 文や for 文といった制御構文、それから関数をの使い方について解説します。

サンプルプログラム

ここでは以下の8つのサンプルプログラムを取り上げます。

  1. データの出力
  2. 変数
  3. 配列(添字配列)
  4. 制御構文(for文)
  5. 制御構文(if文)
  6. 配列(連想配列)
  7. 関数
  8. まとめ

プログラミングがはじめての方でも、繰り返し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 まで( 012 の間の計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プログラミングの基礎について解説しました。

  1. データの出力
  2. 変数
  3. 配列(添字配列)
  4. 制御構文(for文)
  5. 制御構文(if文)
  6. 配列(連想配列)
  7. 関数

わずかなプログラムでしたが、これだけでもPHPプログラミングの基礎的な概念は網羅できています。もし学習していて難しく感じたところがあれば上記のリンク先ページから詳細な内容について学ぶことができます。