🐥
PHPの文法基礎
はじめに
プログラミングの学び初めに最初に遭遇するであろう「変数」や「データ型」について
一定程度つまづく方がいらっしゃるので、そういった方向けにこの記事を書きました。
変数とは?
-
変数は情報を入れておく「コップ」のようなもの。
- 例: お水やジュースを飲むとき、手で直接飲むのは難しいので、コップに入れて飲みます。
-
この「コップ」には名前(ラベル)をつけることができる。
- コップの底にシールをして名前を書き込むような感じです。
- ただし、名前の付け方には決まりがある。
- 最初に数字から始めることはできない。
- 名前に使える文字は限られています(例: 英数字やアンダースコア)。
-
=
を使って情報(水やジュース)を「コップ」に注ぐ。- このとき、
=
は「同じ」という意味ではなく、右のジュースを左のコップに注ぐという動作を表します。
- このとき、
-
echo
はコップの中身を見せるマジックライトのようなもの。- コップに何が入っているのか、ちょっと見せてくれる機能です。
-
「コップ」の中身を使って、他の飲み物を作ったり、他のコップに移したりすることもできる。
- 例えば、コップAとコップBの中身を混ぜ合わせて、新しい飲み物を作ることができます。
変数の宣言方法
PHPの場合、$
+変数名を指定することで宣言します。
- 必ず$で始めます。
- 一部の文字については制限があります。
- $に続く変数名の先頭に数字は使えません。 $1abc というのはNG
- 変数名には英数字が使えます。
- 記号は「_」アンダーバー(アンダースコア)が使えます。
※実は日本語も変数名に使えますが、一般的ではありません。
- 変数名は変数に設定する値に沿う意味のわかりやすい名前にするのが良いです。
$name;
$hello = "こんにちは"; // 宣言と同時に値を設定することもできます。
$2name; // 先頭に数字は使えません
$n2ame; // 先頭以外であれば使用可能
$_year; // アンダーバーも使えます。先頭でも使えます。
// 意味のある変数名にするのがよいです
$title;
$email;
$result;
$firstName;
$familyName;
// 良くない例
$a = "名前";
$b = "090123456789";
$c = "email@mail.com";
$a2 = "男";
$a3 = 8;
$a4 = 9;
口頭で変数の事を話す場合は、頭の$
は言わずに会話することが多いです。
変数のデータ型(データタイプ)の種類
変数は、プログラム内で扱うデータの種類によって「型」というもので分類されます。
よく使われる代表的な型について解説します。
種類 | 型 | 呼び名 | 使われ方 |
---|---|---|---|
文字列 | string | ストリング | 文字列、英数字記号、日本語など 「’」シングルクォーテーションや 「”」ダブルクォーテーションで括る 他にもヒアドキュメントやNowdocのような書き方もある。 文字列として何も設定していない状態を「空文字」と言う。以下は変数aに空文字を設定する例 $a = ‘’; |
整数 | int (integer) |
イント (インテジャー) |
小数点を含まない整数 最大値はおよそ900京 一般的な数値表現(10進数)以外に、 16進数、8進数、2進数表記で指定可能 |
浮動小数点数 | float | フロート | いわゆる小数を含む数値 |
論理型 | boolean | ブーリアン ブール |
正しいか(true) 正しくないか(false) 論理値と言う false扱いのもの: 0, 0.0, 空文字("”), "0”, 要素ゼロの配列 true扱いのもの: 0以外の数値, 0.1より大きい小数, 何か値のある文字列(”a”など), 要素のある配列, -2, "false” |
配列型 | array | アレイ | 配列とは、他のデータ型をまとめたデータ型 インデックス配列、連想配列がある。 |
NULL型 | null | ヌル | 値がないことを表す。 |
使用例
変数
それぞれの型の簡単な使い方について例を示します。
<?php
// 文字列型
$name = "John";
// 文字列と文字列を連結するには「.」を使う。
echo "Hello, " . $name . "!";
echo "\n";
// 実行時の出力:Hello, John!
// 数値型
$number1 = 10;
$number2 = 3.14;
$sum = $number1 + $number2;
echo "Sum: " . $sum;
echo "\n";
// 実行時の出力:Sum: 13.14
// 論理型
$flag = true;
if ($flag) {
echo "Flag is true.";
}
echo "\n";
// 実行時の出力:Flag is true.
// 配列型
$array1 = array(1, 2, 3);
$array2 = array(
"name" => "John",
"age" => 20
);
echo "Array1: " . $array1[1];
echo "\n";
echo "Array2: " . $array2["name"];
echo "\n";
// 実行時の出力:
// Array1: 2
// Array2: John
// オブジェクト型
class MyClass {
public $name = "John";
public function sayHello() {
echo "Hello, " . $this->name . "!";
}
}
$obj = new MyClass();
$obj->sayHello();
echo "\n";
// 実行時の出力:Hello, John!
// NULL型
$var = NULL;
if ($var === NULL) {
echo "Var is NULL.";
}
echo "\n";
// 実行時の出力:Var is NULL.
?>
こちらで簡単に動作確認ができます。
値の変更等も自由にできますので、いろいろ試してみてください。
プログラムの確認方法について
特に環境構築不要で簡単に使えるので、私が良く使っているのは先ほどのリンクでも用いていたpaiza.ioというサービスです。
ご使用している実行環境で確認する場合は、
test.php
などと任意のファイルを作成し、
上記のプログラムをコピーしてファイルに張り付けて保存し、
php test.php
として実行することで出力を確認することができます。
実行結果の出力について
何かを値を出力するプログラムとして、PHPではecho
を用います。
実行しているプログラムの中で値を確認したい場合などよく使われますので、
実際に使ってみて動きを確認してみましょう。
ところどころに記述されているecho "\n";
は改行を意味しています。
改行を含めないと出力結果が1行で繋がって出力されてしまいます。
<?php
echo "文字列";
echo "\n";
echo 123;
echo "\n";
$a = "hoge";
echo $a;
echo "\n";
// 改行の入れ方のバリエーション
echo "hello php!" . "\n"; // .で結合することもできます。
echo "hello\n php!\n"; // 文字列の中に含めることもできます。
// 改行されないパターン
echo 'hello php!\n';
// シングルクォーテーションで囲んだ場合、そのままの文字として出力されます。
// 改行したい場合はダブルクォーテーションで囲みましょう。
// 基本的にダブルクォーテーションで文字列は扱っておくとよいでしょう。
?>
公式情報
他にもいくつか型に関する情報などありますので、PHP公式のページも確認してみると良いでしょう。
Discussion