【PHP入門】変数とデータ型を初心者でも簡単に理解できるように解説してみた
初めまして。去年の11月から入社しました加藤と申します。
下の名前が「セイジ」なので、千原兄弟から取って「ジュニア」とあだ名を先輩のゆうこさんに頂きました。
まぁセイジはお兄ちゃんの方なんですけどね。
PHPの変数
さて、プログラム言語を学び始めて最初に試すことと言えば、
“Hello World!“
を表示させること。
その次は変数とデータ型を理解することです。
これはどの言語を選んだとしても、ほぼ同じですね。
では、変数とはなんぞ?
の方もいらっしゃると思うので、概念の説明からすることにしましょう。
変数とは?
変数とは変動する値とか、プログラム内で自由に値を変更できるなど、口で説明したところであまりピンとこないと思うので実際に設定してみようと思います。
1 |
[sourcecode lang="text"]$age=26[/sourcecode] |
上記は僕の歳を変数に入れたところです。
$マークが付いている単語が変数です。
またここではageという単語を使いました。これは日本語で言えば年齢ですね。
年齢を入れる変数名にはageを使う!と決まっているわけではありません。
僕が勝手にageという名前の箱を作っただけです。
そうなんです。変数名は自由に個人が決めていいのです。
そうして作った$ageに僕の歳である26を代入しているわけですね。
これで$ageという変数に僕の歳である26という数値を入れることができました。
簡単じゃないですか?
それじゃあ次はより詳しく踏み込んでみましょう。
変数とは空箱である
もうズバリこのイメージで間違いないです。
$nameとあったら、nameと書いてある空箱が用意されてるのと同じです。そこに誰かの名前(中身)を入れてあげればもう変数として使えます。
1 |
[sourcecode lang="php"]$name="セイジ"[/sourcecode] |
これで出力する際には
1 |
[sourcecode lang="text"]echo $name[/sourcecode] |
としてあげれば、もう中身の「セイジ」が出力されます。
簡単じゃないですかー。どうです?
変数の存在意義
こう書くと、
「そもそも$nameに入れる意味がなくない?『echo “セイジ”』って打てばいいじゃん」
って思いますよね?
わかります!僕も最初そう思ってました。ていうか誰でも一度は考えると思います。
確かに上記のように一度しか使わない変数なら、そのままecho “セイジ”と打った方が早いと思います。
ですが、実際のプログラムではこのように一度しか使わない値ばっかり出てくるわけではありません。
中には何十回と呼び出される値もあるわけです。
その度に変数を使わないで、定数でそのまま”セイジ”と全て打ってみたらどうなるでしょうか。
echo”セイジの体力は”、echo”セイジの攻撃力は”、echo”セイジの所持金は”・・・etc
何十個もこのようにセイジ、セイジと打ってようやくプログラムが完成しました。
そこであなたの上司の方がこう言います
「やっぱり主人公の名前をセイジからシンジにしよう」
悲劇ですね。あなたは何十個、何百個もの文章をセイジからシンジに変更する作業を余儀なくされました。
さて、ここで変数を使っていたらどうでしょうか!
1 2 3 4 5 6 7 |
[sourcecode lang="text"]$name="セイジ"; echo $name . "の体力は" echo $name . "の攻撃力は" echo $name . "の所持金は"[/sourcecode] |
何個、何十個、何百個と文章があったとしても修正するのは先頭の『$name=”セイジ”』の部分だけです。
ここをセイジからシンジに変更するだけで、何十個もある文章全てがシンジに変換されて出力されます。
作業が格段に早くなると思いませんか?これが変数を使う理由の一つです。
変数のルール
さてそれでは、実際に変数を使うにあたって、幾つかルールを説明しておきましょう。
- 変数とする単語には、頭に$マークをつける。
- 大文字と小文字は完全に別物とする。
- 予約語は使えない(これは意識しなくても大丈夫です)
一つ目は大丈夫ですね。変数とする単語には先頭に$をつける。これだけです。
二つ目は割と重要です。
$name ≠ $Name ということです。
1 |
[sourcecode lang="text"]$name="セイジ"[/sourcecode] |
と打ってもecho $Name としたら、セイジは出てきません。
これ、実際わりとよくミスります。特にIDE環境外でコードを書くとよくやってしまいます。
三つ目。予約語は使えない。
これはですね。もう意識しなくても大丈夫です。
どうせ故意でない限り、わざわざ予約語を変数名にしようとはしないでしょうし、予約語を変数名にうっかりしそうなレベルになっていたら、そもそも予約語はなんなのか理解できているはずです。
データの型
変数を理解したら、次はデータの型について理解しましょう。
最初に定義から説明します。
データの型には
- 整数型
- 浮動小数点数型
- 文字型
が存在します。
本当はboolean型やobject型、array型などがあるんですが序盤は意識しなくてよいです。
整数型は僕たちが普段使っている数字ですね。1~9999999などの情報ですね。
先ほど使った$age=26;
これも整数型になります。
浮動小数点数型は小数点ですね。
3.141592などです。
文字型は”セイジ”とかです。
以上です。短くて簡単ですね。
思った以上に記事が長くなってめんどくさくなったとかじゃないですよ?
本当にこれ以上説明することがないんです。
なぜならphpではデータ型をあまり意識しなくても良いように作られているからです。
他の言語、例えばJAVAなどでは、変数を使用するときに必ず変数名の前にその変数の型を宣言する必要があります。
例を書きます。
1 |
[sourcecode lang="text"]int age = 26; もしくは String name = "セイジ";[/sourcecode] |
などですね。
ですがphpではこの型の宣言は要りません。
1 |
[sourcecode lang="text"]$age=26;[/sourcecode] |
とやれば、勝手に整数型のデータとして代入されます。
なので、phpを扱う上でデータの型を深く意識することはあまり必要ありません。
もちろん序盤だけですよ?
プログラミング言語を学ぶ上で一番大事なのは、深く理解しなくても良いところは理解しないままとりあえず先に進むことです。
序盤でどうしても理解できなかったことが、その後得た知識によって体系化されていくのはよくある話です。
なので、ここではデータの構造を次の一言で表そうと思います。
$var と存在した時、そのデータの型はイコールの後で判断できる。
これはどういうことかと言うとですね。例えば
1 |
[sourcecode lang="text"]$var = 22;[/sourcecode] |
とあったらこれは整数型です。一目瞭然ですね。
1 |
[sourcecode lang="text"]$var = "22";[/sourcecode] |
とダブルクオテーション(“”)でくくられていたらこれは文字型です。
同様に
1 |
[sourcecode lang="text"]$var = 22.22;[/sourcecode] |
となっていたらこれは少数型です。
簡単じゃないですか?これがphpの型フリーという概念です。
最初のうちはこんな簡単なイメージで全然大丈夫です。
しばらくしたら、嫌でも型という概念が身についていると思うので。
長くなりましたが以上で終了です。この記事が少しでもプログラミング初心者の糧となることを祈っています。