こんにちは!
PHPのLaravelやJavaScriptでWeb開発をしているフリラーンスエンジニアのファドと申します!
こちらの記事はPHP教材の第2回目の記事になります。
その他のPHP教材を学習したい方は下記リンクから直接教材へ飛ぶことができます。
変数
フォルダ名:「variable」
今回のレクチャーでは、JavaScriptでも学習しましたが、プログラミングの基本となる「変数」について改めて教えていきたいと思います。
プログラミング言語には、あるひと塊に名前をつけることができる「変数」という機能があります。
なぜこのような機能があるかと言うと、プログラミングをしていると、同じようなテキストやデータなどを何度も使い回したい場合が多々あります。
何度も使い回す場合、その都度同じテキストやデータを書き込むのは面倒ですよね。
そんなときに役立つのがこの「変数」なのです。
変数とは、さまざまなものを入れておく「箱」だとイメージするとわかりやすいです。
さて、変数がどのようなものかわかったところで、実際にPHPで変数を使う方法を説明していきます。
PHPでの変数の使い方を説明していくので、フォルダとファイルを準備しましょう!
MAMP(XAMPP)のhtdocsフォルダ内に’variable’という名前のフォルダを作成し、その中にindex.php
というファイルを作成してください。index.php
を下記の通り編集してください。
早速コードを書いてみてみましょう!
<?php
$text = "PHPで変数を確認";
echo $text;
下記のURLより、ブラウザにアクセスし表示を確認してください。
PHPで変数を確認というテキストが出力されていればOKです!
http://localhost:8888/variable
http://localhost/variable
再代入
PHPの変数もJavascriptの変数と同様に再代入ができます!
以下のコードを見てください。
<?php
$text = "PHPで変数を確認";
$text = "変数を上書きしました";
// 変数を上書きしましたというテキストがブラウザに出力される
echo $text;
以上のコードのように、PHPの変数の値を再代入することができます。
つまり、再代入することで変数text
の内容を書き換えることができます。
再代入した後のコードでは、新たに変数が代入されるまでは、上書きした値が変数に格納されていることになります。
変数は何回でも使える
変数は、1度定義してしまえば、何回でも再利用することができます。
<?php
$word = "再利用";
echo $word;
echo $word;
echo $word;
echo $word;
echo $word;
こうすることで、再利用
というテキストを5回出力することができます。
この「再利用できること」が、変数を使う大きなメリットの1つです。
覚えておきましょう!
変数名の命名規則
変数の名前は皆さん自身で決めていただいて構いません。
つまり、text
でも、box
でも、test
でもいいということです。
変数の名前は任意です。ただし以下の点に注意しましょう。
・名前には半角英数字とアンダースコア「_」のみ使用するようにしてください。
・先頭に数字を使うのは避けてください。
・先頭に大文字を使うのは避けてください。
・予約語を使わないでください。
補足ですが、PHPでは行末に;(セミコロン)
を必ず入れてください。
JavaScriptの場合は付けなくても実質問題ありませんでしたが、PHPの場合は、セミコロンを省略するとプログラムが機能しなくなります。
★検索ワード
・PHP 変数
・PHP 予約語とは
データ型について
フォルダ名:「data_type」
JavaScriptにもデータ型はありましたが、もちろんPHPにもデータ型が存在します。
PHPにも、文字列、数値、真偽値といった値の型があります。
これらの値の型のことをデータ型と呼びます。
データ型を大きく分けると、スカラー型と複合型、特殊型の3つに分類されます。
・スカラー型は、一つの変数に一つの値だけを扱うことができる型のことです。
・複合型は、一つの変数に複数の値をまとめて扱えるデータ型のことです。
・特殊型は、スカラー型でも複合型でもないデータ型のことです。
PHPのデータ型を細かく見ていくと、4つのスカラー型と2つの複合型、2つの特殊型から成り立っています。
スカラー型
型名 | 説明 |
---|---|
真偽値(Boolean) | true またはfalse |
整数(Int) | -1 、0 、1 などの整数 |
浮動小数点(Float) | 3.14 のような小数点数 |
文字列(String) | “テキスト”などの文字列 |
複合型
型名 | 説明 |
---|---|
配列(Array) | 複数のデータの集合 |
オブジェクト(Object) | データと手続きの集合 |
特殊型
型名 | 説明 |
---|---|
リソース(Resource) | 外部リソースへの参照 |
Null | 値が存在しないことを意味する |
また、以前ご紹介したvar_dump()
を使うことで、データ型を簡単に調べることができます。
<?php
var_dump(true);
// bool(true)
var_dump(124);
// int(124)
var_dump(3.14);
// float(3.14)
var_dump("テキスト");
// string(12) "テキスト"
var_dump(['a', 'b']);
// array(2) { [0]=> string(1) "a" [1]=> int(1) }
var_dump(null);
// NULL
var_dump()
の後のコメントアウトは、全て実行結果です。
配列を確認した場合には、配列に入っているすべてのデータの型が出力されます。
オブジェクト(Object)とリソース(Resource)については後ほど詳しく説明していきます!
リテラル
リテラルとは、プログラム上で数値や文字列など、データ型の値を直接記述できるように、構文として定義されたものです。
例えば、"
(ダブルクォーテーション)と"
で囲んだ範囲が文字列リテラルで、これは文字列型のデータを表現していることになります。
コードで説明すると、下記のようになります。
<?php
// ダブルクォーテーションで囲んだ範囲が文字列リテラルになる
$str = "文字列リテラル";
下記の4つのスカラー型は、それぞれリテラル表現を持っています。
・真偽値
・整数
・浮動小数点
・文字列
また、2つの複合型も、それぞれリテラル表現が用意されています。
・オブジェクト
・配列
そして、1つの特殊型もリテラル表現が用意されています。
・null
これらのリテラルについて、まずはスカラー型から順番に見ていきます。
真偽値(Boolean)
真偽値にはtrue
とfalse
の2つのリテラルがあります。
それぞれはtrueとfalseの値を返すリテラルで、正か偽かの見た目通りの意味となります。
<?php
var_dump(true);
// bool(true)
var_dump(false);
// bool(false)
var_dump()
の後のコメントアウトは、全て実行結果です。
整数(Int)
数値は543
や1
のような整数リテラルがあります。
<?php
var_dump(1);
// int(1)
var_dump(132);
// int(132)
var_dump(4532);
// int(4532)
var_dump()
の後のコメントアウトは、全て実行結果です。
浮動小数点(Float)
数値には先程ご説明した整数リテラルと、4.54326
のような浮動小数点数リテラルがあります。
<?php
var_dump(3.14);
// float(3.14)
var_dump(1.5342);
// float(1.5342)
var_dump(5.43522);
// float(5.43522)
var_dump()
の後のコメントアウトは、全て実行結果です。
文字列(String)
文字列リテラル共通のルールとして、同じ記号(ダブルクォーテーションやシングルクォーテーションなど)で囲んだ内容を文字列として扱います。
文字列リテラルとして次の3種類のリテラルがありますが、その評価結果はすべて同じ”リテラル”になります。
<?php
var_dump("リテラル");
// string(12) "リテラル"
var_dump('リテラル');
// string(12) "リテラル"
var_dump()
の後のコメントアウトは、全て実行結果です。
null
nullリテラルはnull値を返すリテラルです。
nullは「値がない」ということを表現する値です。
<?php
$hoge = null;
var_dump($hoge);
// NULL
var_dump()
の後のコメントアウトは、全て実行結果です。
配列
頻繁に使われるリテラルとして配列リテラルがあります。
配列リテラルは[
と]
で値をカンマ区切りで囲み、その値を持つArrayオブジェクトを作成します。
配列(Arrayオブジェクト)とは、複数の値に順序をつけて格納できるオブジェクトの一種です。
<?php
// 空の配列を作成
$emptyArray = [];
var_dump($emptyArray);
// array(0) { }
// 値を持った配列を作成
$array = [1, 2, 3];
var_dump($array[0]);
// int(1)
var_dump($array[2]);
// int(3)
$arrayString = ['1番目', '2番目', '3番目'];
var_dump($arrayString[0]);
// string(7) "1番目"
var_dump($arrayString[2]);
// string(7) "3番目"
var_dump()
の後のコメントアウトは、全て実行結果です。
少しややこしいですが、配列は0からはじまるインデックスに、対応した値を保持しています。
上記の配列array
を例にすると、インデックスが0
の場合は数値の1
、インデックスが1
の場合は数値の2
、インデックスが2
の場合は数値の3
になるので、var_dump(array[0])
と記述された場合は、数値の1
が出力される。
このように、作成した配列の要素を取得するには、配列に対してarray[インデックス番号]という構文で指定したインデックスの値を参照できます。
また、var_dump($emptyArray);
の実行結果に注目してください。array(0) { }
と出力されていますね。
このarray()の部分で配列の中に要素がいくつ入っているかということが読み取れます。
$emptyArrayは空の配列なのでarray(0)
となっているということです。$array
を同じようにvar_dump()で出力してみましょう。
<?php
// 値を持った配列を作成
$array = [1, 2, 3];
var_dump($array);
// array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)
var_dump()
の後のコメントアウトは、全て実行結果です。
コメントアウトに注目するとarray(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
array(3)
になっていますね。
配列$arrayの中には3つの要素が入っているということがここで読み取れます。
連想配列
配列の学習が終わったところで、ここで連想配列も一緒に学習していきましょう!
配列とは、一つの変数に複数のデータを入れておくものでした。
連想配列とは、配列を使いやすくしたものです。
配列は、先頭から順に番号を振ることで中身のデータを区別していましたが、連想配列では番号でなく名前をつけて区別することができます。
具体的に違いを説明すると、配列には、変数の箱の中身に 0,1,2……と背番号のように番号を振り、その番号を指定することでデータを指定するという性質がありましたが、連想配列では、番号のかわりに名前をつけて管理することができます。
<?php
$array = ["名字" => "山田", "名前" => "太郎", "年齢" => 26];
var_dump($array);
// array(3) { ["名字"]=> string(6) "山田" ["名前"]=> string(6) "太郎" ["年齢"]=> int(26) }
var_dump()
の後のコメントアウトは、実行結果です。
上のコードの名字
や名前
のことをキー(key)
、山田
や太郎
のことを値(value)
といいます。
連想配列から特定の値(value)
を取得する場合にはキー(key)
を指定してあげます。
実際にコードで確認してみましょう!
<?php
$array = ["名字" => "山田", "名前" => "太郎", "年齢" => 26];
var_dump($array["名字"]);
//string(6) "山田"
var_dump()
の後のコメントアウトは、実行結果です。山田
が出力されましたね!
名字
の部分を名前
や年齢
に変えて試してみてください。太郎
、26
がそれぞれ出力されることが確認できると思います。
演算子について
フォルダ名:「operator」
PHPにも、算術演算子や代入演算子、論理演算子などがあります。
それらをどのように使うのかなどを含めて、説明していきます。
算術演算子
種類 | 説明 |
---|---|
+ | 加算演算子:a + b 「aにbを足す」 |
– | 減算演算子:a – b 「aからbを引く」 |
* | 乗算演算子:a * b 「aとbをかける」 |
/ | 除算演算子:a / b 「aをbで割る」 |
% | 剰余算演算子:a % b 「aをBで割った余り」 |
** | べき乗演算子:a ** b 「aのb乗」 |
手を動かしながら見ていきましょう。index.php
を下記の通り編集してください。
<?php
$plus = 12 + 32;
var_dump($plus);
//int(44)
$minus = 29 - 12;
var_dump($minus);
// int(17)
$time = 10 * 2;
var_dump($time);
// int(20)
$divide = 100 / 20;
var_dump($divide);
// int(5)
$extra = 33 % 5;
var_dump($extra);
// int(3)
$exponent = 5 ** 5;
var_dump($exponent);
// int(3125)
var_dump()
の後のコメントアウトは、全て実行結果です。
5 ** 5
は、5✕5✕5✕5✕5
の計算をしています。
べき乗は忘れがちなので、ぜひ覚えておきましょう!
もちろん数字の部分を変数にすることもできます。
<?php
$num = 5;
$ten = 10;
$result = $num * $ten;
var_dump($result);
// int(50)
変数numは5
、変数tenは10
なので、num * ten
は5 ✕ 10
という意味になります。
よって、出力結果はint(50)
になります。
代入演算子
種類 | 説明 |
---|---|
= | a = b 「aにbを代入する」 |
+= | a += b 「aにbを足して、aに代入する」 |
-= | a -= b 「aからbを引いて、aに代入する」 |
*= | a *= b 「aにbを掛けて、aに代入する」 |
/= | a /= b 「aをbで割って、aに代入する」 |
%= | a %= b 「aをbで割った余りを、aに代入する」 |
**= | a **= b 「aのb乗をaに代入する」 |
手を動かしながら見ていきましょう。index.php
を下記の通り編集してください。
<?php
$baseNum = 100;
$variable = $baseNum;
var_dump($variable);
// int(100)
$baseNum += 10;
var_dump($baseNum);
// int(110)
$baseNum -= 30;
var_dump($baseNum);
// int(80)
$baseNum *= 10;
var_dump($baseNum);
// int(800)
$baseNum /= 8;
var_dump($baseNum);
// int(100)
$baseNum %= 7;
var_dump($baseNum);
// int(2)
$baseNum **= 4;
var_dump($baseNum);
// int(16)
var_dump()
の後のコメントアウトは、全て実行結果です。
自らに再代入しているので、代入演算が終わった後に変数baseNum
の数値が変化するのは、とても面白いですね。
ぜひ覚えておきましょう!
もちろん文字列も足すことができます。
<?php
$baseWord = '私は';
$boysName = 'ボブ';
$fin = 'です';
$baseWord .= $boysName;
var_dump($baseWord);
// string(12) "私はボブ"
$baseWord .= $fin;
var_dump($baseWord);
// string(18) "私はボブです"
文字を繋ぎ合わせることを、文字列連結と言います。
こちらも合わせて覚えておきましょう。
また、PHPで文字列連結を行う際には+=
は使用できず、.=
を使用することに注意しましょう!
ちなみに、普通に足すこともできます。
<?php
$sentence = "これは" . "文章" . "です";
var_dump($sentence);
// string(21) "これは文章です"
var_dump()
の後のコメントアウトは、実行結果です。
こちらでも+
を使用せず.
で文字連結を行っています!
比較演算子
種類 | 説明 |
---|---|
< | a < b 「aがbより小さい」 |
> | a > b 「aがbより大きい」 |
<= | a <= b 「aがb以下」 |
>= | a >= b 「aがb以上」 |
手を動かしながら見ていきましょう。index.php
を下記の通り編集してください。
<?php
var_dump(12 < 12);
// bool(false)
var_dump(12 > 32);
// bool(false)
var_dump(12 <= 12);
// bool(true)
var_dump(12 >= 32);
// bool(false)
var_dump()
の後のコメントアウトは、全て実行結果です。
比較演算子を使用した時に返ってくる値は、真偽値(true・false)です。
算数や数学で使用していたままの使い方なので、わかりやすいですね。
等価演算子
種類 | 説明 |
---|---|
== | a == b 「aとbが等しい」 |
=== | a === b 「aとbが厳密に等しい」 |
!= | a != b 「aとbが等しくない」 |
!== | a !== b 「aとbが厳密に等しくない」 |
等価演算子を使用した時に返ってくる値も比較演算子と同じく、真偽値(true・false)です。
さて、等しい
と厳密に等しい
や等しくない
と厳密に等しくない
の違いは何でしょうか?
それは、厳密に等しい場合は、データ型も合っているかの確認をします。
言葉で説明するのもあれなので、手を動かしながら見ていきましょう。index.php
を下記の通り編集してください。
<?php
var_dump(12 == "12");
// bool(true)
var_dump(12 === "12");
// bool(false)
var_dump(12 != "12");
// bool(false)
var_dump(12 !== "12");
// bool(true)
var_dump()
の後のコメントアウトは、全て実行結果です。var_dump(12 == "12")
のコードをよく見てください。
左辺が12
で右辺が"12"
となっています。
つまり、左辺は数値の12
であるのに対して、右辺は文字列の12
なのです。
しかし、今回の等価演算子は==
なので厳密には判断しません。
つまり、双方のデータ型が同じである必要はないんです。
そのため、var_dump(12 == "12")
の場合は12
と12
の単純比較なので、true
が返ってきます。
一方で、var_dump(12 === "12")
の場合は厳密に判断することになります。
そのため、数値の12
と文字列の12
では、データ型が違うので、false
が返ってくるようになります。
var_dump(12 != "12")
とvar_dump(12 !== "12")
も全く同じです。var_dump(12 != "12")
の場合、厳密に判断しないので、数値の12と文字列の12は等しいと判断されます。
そのため、!=
である場合、等しくない場合にtrue
となるので、false
が返されます。
var_dump(12 !== "12")
の場合は、厳密に判断するので、数値の12と文字列の12は等しくないと判断されます。
そのため、!==
である場合、等しくない場合にtrue
となるので、true
が返されます。
★検索ワード
・PHP 演算子とは
・PHP 算術演算子
・PHP 代入演算子
・PHP 比較演算子
・PHP 等価演算子
次の教材
次の教材は下記から簡単に飛ぶことができます!
引き続きプログラミングを楽しんでいきましょう!
プログラミング学習サポートについて
「独学で挫折した。。。」
「一人でのプログラミング学習がしんどい。。。」
「未経験からエンジニア転職をしたいけど何をしたら良いかわからない。。。」
このような悩みをお持ちの方向けに、本教材作成者のファドがMENTAという学習サイトにてあなたのプログラミング学習とエンジニア転職を徹底サポートいたします!
サポート価格はなんと1日あたりたったの約300円!
教材で分からない箇所のサポートはもちろんのこと、本サイトで公開しているすべての課題の解答も公開しております。
また、MENTAで学習を終わらせていただいた方限定で懇意にしていただいている企業さんを紹介することもあります!
なお、サポート内容の詳細は下記の通りです。
- 目標設定
- マインドセット
- オリジナル教材見放題
- オリジナル課題見放題
- オリジナル課題の解答見放題
- 課題コードレビュー
- 教材への無制限質問
- 課題への無制限質問
- ポートフォリオ作成アドバイス
- 褒めのコーチング
いくつかのプランを用意させていただいておりますので、下記より一度ご覧ください!
コメント