パソコンがあれば自由研究のネタとしてプログラミングを選択することも可能
PHPとは何か?
PHPは高機能なWebサイトを開発する際に利用できる開発言語のひとつです。
PHPを動かす準備
PHPプログラミングを研究するために、
- パソコン
- ホスティングサービス
上の2つが必要になります。
無料で利用できるホスティングサービス
Hostingerという無料プランのあるホスティングサービス上でPHPプログラムを動作させます。
アカウント登録については、下の記事が参考になります。
http://dim5.net/windows-server/wordpress-install.html#hostinger
Hostingerのコントロールパネルにログイン
アカウントを登録したらコントロールパネルにログインします。
http://cpanel.hostinger.jp/auth
ログインするとダッシュボードが表示されます。
ダッシュボードの下の方に
ファイルマネージャー
というリンクがあるのでクリックします。
ファイルマネージャ
初回はファイルマネージャのセットアップがありますので、言語に日本語を選択してインストールします。
2回目以降は画像のオレンジ色で囲ったリンクをクリックすることでファイルマネージャを起動することが出来ます。ファイルマネージャを起動すると、Hostingerで最初から配置されているファイルを確認することが出来ます。
ウェルカムページの確認
表示されている
default.php
というファイルは、サイトのウェルカムページになります。アカウント登録時に設定したサブドメイン付のURLでアクセスしてみます。
上のドメイン名は、Webエンジニアブログが設定したサイトになりますので、自身がアカウント作成時に設定したドメインにアクセスしてください。
最初のPHPプログラム
ファイルマネージャを利用できること、及び自分専用のWebサイトにアクセス可能であることを確認できたので、PHPプログラムを作成してみます。
オレンジ色で囲った
[新規テキストファイル]
のボタンをクリックして新しいファイルを作成します。
c1.php
というファイルを作成したのが下の画像です。
丸で囲った
[ファイル編集]
ボタンをクリックしてPHPコードを書きます。
画像のようにエディタに下のPHPコードを入力します。
<?php echo "Summer Holiday";
入力したら、Saveボタンでファイルを保存します。
このコードは、画面に
Summer Holiday
と表示するPHPコードです。表示されるか確認してみます。
http://webengineer.hol.es/c1.php
サブドメイン名は個々の環境で異なりますが、上のURLにアクセスして
Summer Holiday
が表示されれば、最初のPHPプログラムは動作したことになります。
研究の成果
- HostingerのファイルマネージャでPHPプログラムを作成
- PHPのecho機能を利用して文字列を画面に出力
- インターネット経由で自分のWebサイトにアクセス
変数の利用
通常のプログラミングでは変数を使います。Summer Holidayを表示するプログラムを変数を利用して新規に作成してみます。
<?php $moji = "Summer Holiday"; echo $moji;
c2.phpというファイル名で上のPHPコードを記述して保存します。
新しくc2.phpを作成したので、アクセスするURLは下のURLになります。
http://webengineer.hol.es/c2.php
アカウント登録時に設定した個々のドメイン名に置き換えてアクセスしてください。
アクセスすると先の例と同様に
Summer Holiday
と表示されました。しかし、今回のPHPコードでは変数を利用しています。入門書では、
$moji変数を宣言しSummer Holidayという値を代入した
と解説されたりします。
イメージとしては、
Summer Holidayを$moji変数としてPHPコードで扱えるようになった
と説明することもできます。
研究の成果
- PHPで$moji変数を作成して文字列を代入した
- echo機能を利用して変数内の文字列を画面に出力した
関数
プログラミングで変数よりもイメージし難いのが関数です。関数は、
入力 → 処理 → 出力
というプログラミングの基本的な流れを意識するとイメージしやすくなります。
上で作成した$mojiを利用して説明すると、
- $mojiを入力として
- 関数で処理すると
- $new_moji変数にSpring Holidayが出力される
関数の例として文字列の一部を置き換えるstr_replace関数を利用してみます。
c3.phpというファイル名で下のPHPコードを作成します。今回はPHPのコメントを利用してコードに説明を付けたしてみます。
<?php $moji = "Summer Holiday"; // 1.$mojiを入力として 2.str_replace関数で処理すると 3.$new_moji変数にSpring Holidayが出力される $new_moji = str_replace("Summer", "Spring", $moji); echo $new_moji;
一行のPHPコードで
- 入力
- 処理
- 出力
が出来ていることが確認できます。
今回は、
str_replace
というPHPのビルトイン関数を例に利用してみました。ビルトイン関数は、他にも存在しPHPに標準で備わっているビルトイン関数を利用してPHPコードを記述することになります。
研究の成果
- PHPのビルトイン関数を利用して文字列を書き換えた
- 関数は入力 → 処理 → 出力を意識すると理解しやすい
時間の取得
別のビルトイン関数としてdate関数があります。
date関数の場合は、入力として
日付のフォーマット
を指定することができます。
<?php $moji = "Summer Holiday"; // date関数の入力としてY-m-d H:i:sという日付の書式を渡すとその書式で日付が出力されます $today = date("Y-m-d H:i:s"); // $mojiと$todayを文字列として結合するために.(ドット)を利用できます echo $moji.$today;
c4.phpとして上のPHPコードを貼り付けてアクセスすると画像のとおり表示されます。
日付・時刻がSummer Holidayと連結された状態で表示されました。しかし、表示されている時刻がずれて表示されています。この原因は、
表示された時刻がサーバで設定されたタイムゾーンの時間を表示しているため
日本国内からアクセスすると時差がある関係上、時間がずれて表示されます。
タイムゾーンはPHPコードで変更できますので、以下のコードにc4.phpを置き換えます。
<?php // タイムゾーンをAsia/Tokyoに設定 date_default_timezone_set('Asia/Tokyo'); $moji = "Summer Holiday"; $today = date("Y-m-d H:i:s"); echo $moji.$today;
時間がずれることなく表示されることを確認します。
研究の成果
- date関数を利用してフォーマットした日付を取得した
- .を使って文字列を連結した
- タイムゾーンをPHPコードで設定して正確な日付を取得した
条件分岐
プログラミングでは、条件分岐が利用できます。PHPプログラミングでifによる条件分岐をやってみます。
c5.phpというファイル名で下のPHPコードを記述します。
<?php $moji = "Summer Holiday"; if( $moji == "Summer Holiday" ) { echo "夏休み"; } else { echo $moji; }
実行結果は画像のとおりです。
<?php // $mojiの内容に応じて出力を変える $moji = "Summer Holiday"; // $mojiがSummer Holidayの場合 if( $moji == "Summer Holiday" ) { echo "夏休み"; } else { // Summer Holidayの場合 echo $moji; }
if( 条件式 )
と設定することで
条件式の結果を評価
してどの処理を行うのか判定処理をコンピュータが行っています。別の言い方をすると、PHPコードを書く開発者がコンピュータに条件式の結果に応じて、どの処理を行うのか判断するように指示しています。
$mojiの内容をSummer Holiday以外の文字列に変えると、その文字列が表示されます。
条件分岐は複数設定することができます。下のPHPコードは、複数の条件で分岐した例です。c6.phpというファイル名で下のPHPコードを記述します。
<?php $moji = "Spring Holiday"; if( $moji == "Summer Holiday" ) { echo "夏休み"; } elseif( $moji == "Spring Holiday" ) { echo "春休み"; } else { echo $moji; }
elseif(条件式)を追加していくことで、複数の条件をコーディングすることができます。
研究の成果
- PHPのif文を使って条件分岐処理を書いた
- 変数の内容に応じて出力を変化できることを確認した
- 複数の条件をコーディングした
if文の条件式はどのように評価しているのか
条件分岐では、PHPのifを使って変数の内容に応じて出力を変えてみた。その中で、
条件式が結果を評価
していると説明しました。そのあたりをもう少し詳しく研究してみます。c7.phpというファイル名で下のPHPコードを記述します。
<?php $moji = "Summer Holiday"; var_dump( $moji == "Summer Holiday" );
条件式を
var_dump関数に入力
しています。実行結果は以下の画像のとおりです。
bool(true)
と表示されました。
今度は、$mojiをSpring Holidayに変えて実行してみます。
<?php $moji = "Spring Holiday"; var_dump( $moji == "Summer Holiday" );
今度は
bool(false)
と表示されました。var_dumpを利用することで、条件式の評価結果を知ることが出来ます。
- true → 条件式の評価結果が合っている
- false → 条件式の評価結果が間違っている
true/falseは、上のように説明することが出来ます。そして、if文の条件式では、
この判断をコンピュータが行い、どの処理を実行するか決定している
という点が重要です。
研究の成果
- var_dump関数を使って条件式の評価結果を知ることができる
- 条件式はtrueもしくはfalseを返す
- if文は条件式の評価結果に応じて処理を決定している
夏休みの自由研究でPHPプログラミングをはじめる後半に続く