型と変数について学ぶ前に
- 解説
- 1. 学習の準備
- 2. 型・変数とは
- 3. 型・変数の使い方(例1)
- 4. 型・変数の使い方(例2)
- 5. 型・変数の使い方(まとめ)
解説
1. 学習の準備
まずは学習用に新たなクラスを作りましょう。
(1) | 「php_basic」プロジェクト内に「TypesAndVariables.php」を作成してください。 |
(2) | ファイル名と同じ名前のクラスを作成します。下記のコードを参考に「TypesAndVariables」クラスを作成してください。 |
<?php
class TypesAndVariables
{
}
(3) | 下記のコードを参考に「Logger」クラスをインクルードしてください。 |
<?php
include './utility/Logger.php';
class TypesAndVariables
{
}
(4) | 下記のコードを参考に「main」メソッドを作成してください。 |
<?php
include './utility/Logger.php';
class TypesAndVariables
{
public static function main()
{
Logger::echo('こんにちは!');
}
}
(4) | 以下のコードを参考に「main」メソッドを呼び出す処理を記述してください。 |
<?php
include 'utility/Logger.php';
TypesAndVariables::main();
class TypesAndVariables
{
public static function main()
{
Logger::echo('こんにちは!');
}
}
(4) | ブラウザから「http://localhost/php_basic/TypesAndVariables.php」にアクセスしてください。 |
ここまでの状態
新たなプログラムを書いて動かすたびに、毎回クラスとmainメソッドを作るのは非効率なため、メソッドを切り替えて実行するプログラムを変える方法を覚えましょう。次のサンプルコードのように書き換えてブラウザから確認してみましょう。
<?php
include './utility/Logger.php';
TypesAndVariables::main();
class TypesAndVariables
{
public static function main()
{
// self::practice01();
self::practice02();
}
public static function practice01()
{
Logger::echo('こんにちは!');
}
public static function practice02()
{
Logger::echo('こんばんは!');
}
}
クラスの中にメソッド「practice01」と「practice02」を新たに作成、それぞれ実行したいコードを書き込み、それをmainメソッドから呼び出すように変更しました。
これで、9行目をコメントアウトすれば、「こんにちは!」を出力するコードを消さずに「こんばんは!」を出力するコードのみを実行する、ということができるようになりました。
この「practice01」という名前は、練習(practice)という単語と連番の「01」をメソッドの命名規則※に従って結合しただけです。自分で練習する際には「renshuu20201231_01」など、自由に名前を付けて構いません。
※先頭は小文字、続く単語の先頭は大文字、先頭はアルファベットのみ
なお、メソッド名の前の「static」や、メソッド名に続く丸括弧の役割については、今後詳細を学習しますので、決まり事として覚えてしまいましょう。
2. 型・変数とは
プログラムの中では、計算に使う数値や画面に表示する文字・画像など、様々なデータを扱います。しかし、コンピューターから見れば、それは膨大な量の「0と1の塊」でしかありません。
そのため、まるで砂で作ったお城やヒトデのように、同じ形の器に入れない限り、移動したり受け渡したりすることができないのです。
このデータを入れておくための器が変数であり、その器の形が型なのです。
PHPのプログラムコードを書けるようになるためには、まずこの2つをしっかり理解する必要があります。これから詳しく学習していきますが、どちらを先に学ぶとしても必要となる、双方の最低限の知識をここで少し身に付けておきましょう。
3. 型・変数の使い方(例1)
実際に型と変数がプログラム中でどのように使われるのかを見てみましょう。
「1. 学習の準備」で作成した「practice02」メソッドを次のサンプルコードのように書き換えてください。実行結果は変わりません。
public static function practice02() {
$message = 'こんばんは!';
// Logger::echo(get_debug_type($message)); // string
Logger::echo($message); // こんばんは!
}
この2行目は、
「message」という名前を付けた器に
(「string」という形の)
「'こんばんは!'」というデータを入れた
と「読む」ことができます。
これは、
「message」という名前を付けた変数に
(「string」型の)
「'こんばんは!'」を代入した
と言い換えることができます。
4行目では、変数「message」に入れた内容を「Logger::echo()」に受け渡しているため、変更前と同じように、「こんばんは!」と出力できたのです。
4. 型・変数の使い方(例2)
もうひとつ例を見てみましょう。新たなメソッド「practice03」を作成し、次のサンプルコードのように書き換えてください。mainメソッドへの呼出行追加と「practice02」の呼出行コメントアウトを忘れずに、実行してみてください。
public static function practice03() {
$calculationResult = 2;
// Logger::echo(get_debug_type($calculationResult)); // int
Logger::echo($calculationResult); // 2
}
無事、「2」と出力されたでしょうか。
2行目を「読む」と、
「calculationResult」という名前を付けた変数に
(「int」型の)
「2」を代入した
ということになります。
ここで注目して欲しいことは、型が「string」から「int」に変わっていることと、代入した「2」がシングルクォーテーション(')で括られていないということです。
stringという型は、データが「文字が複数連なった文字列」という形式であることを示しており、intという型は、データが「整数の値」であることを示しています。
また、string型のデータはプログラム上でシングルクォーテーションで括る、int型のデータは括らない、などの決まりがあることで、コンピューターも人間も、命令とデータを正しく区別することができるようになります。
5. 型・変数の使い方(まとめ)
これだけでは、「Logger::echo()」メソッドに直接渡していたデータを、一旦変数に代入しただけですので、最後にメリットとなる使い方を見てみましょう。practice03を次のサンプルコードのように変更して実行してください。
public static function practice03() {
$calculationResult = 2;
Logger::echo($calculationResult);
$calculationResult = $calculationResult + 3; // この行を追加
Logger::echo($calculationResult); // この行を追加
}
4行目では変数「calculationResult」の中身である「2」と「3」を足し算して、再度同じ名前の変数に代入しています。これによって、「calculationResult」の中身は「5」で上書きされますので、3行目では「2」が出力され、5行目では「5」が出力されたのです。
practice02も次のように書き換えて実行してみましょう。mainメソッドでのコメントアウトの切り替えも忘れずに!
public static function practice02() {
$message = 'こんばんは!';
$message = $message . 'Dig Skill さん!'; // 自分の名前にしましょう!
Logger::echo($message);
}
こちらは変数の中身と別のデータを「.」で繋ぎ、元の変数に再度代入することで「こんばんは!」と「Dig Skill さん!」が結合されていましたね。
int型を「+」で繋いだ場合には整数の加算が、string型を「.」で繋いだ場合には文字列の結合が行われます。
このように、データを変数に入れることで扱いやすくしたり、型によってデータの扱い方を適切に切り替えられるようにする、これが型と変数の仕組みなのです。