【PHP】変数

Image

PHPにおける変数について解説します。

変数とは

変数とはデータを保持する箱のようなものです。箱というのはあくまでイメージでしかありませんが、変数の利用方法は現実における箱の扱い方と良く似ていて、必要な時に物(データ)を入れて、必要な時に物(データ)取り出す、という処理をやってくれます。

コンピュータ内部での動きを詳しく説明するとメモリ等の知識が必要になってくるので、ここでは変数は箱だと覚えていただければ問題ありません。変数は物(データ)を入れるための箱なのです。

ただ、現実世界にように箱に入れる、箱から取り出すというような言い方はしません。変数にデータを入れる処理を代入と呼び、取り出す(中身を見る)処理を参照といいます。

ですが箱がなければ代入も参照もできないですよね。現実でも何もないところに物を入れることなんてできません。

なので変数を処理の中で使用する場合は、予め変数(箱)を用意してあげる必要があります。

箱を用意してあげることを変数を定義すると言います。

PHPの変数はとても便利で、データの種類に関係なく何でも代入することができます。受け取ったデータによって変数の種類が変化するからです。数字を受け取ったら数値型の変数に、文字列を受け取ったら文字列型の変数になります。

箱のイメージを用いると、物の形状や質感、大きさや重さによって、箱の形や材質が自動で変化するようなイメージです。定義した変数にデータを代入する際、気にせず何でも入れられると考えてください。

変数は以下のように定義します。

// 定義方法<
$変数名;

// 記述例
box-hello.php

<?php

  // 変数helloを定義(helloという名前の箱を用意)
  $hello;

  // 変数helloに文字列を代入(helloという箱に「こんにちは!」という物を入れる)
  $hello = "こんにちは!";

  // 変数helloを参照(helloという箱の中身を取り出す
  echo $hello;

?>

Demo

作成したbox-hello.phpの実行結果はdemoのリンクから確認できます。

変数の使い方を一通り説明できましたが、せっかくなので定数と変数の違いについても触れておきます。

前項にて、定数はコードの実行中に定数内のデータを変更することができない特徴があるとお話しました。一度定数に代入した値は処理の実行中に変えることはできません。

しかし、変数は違います。コード実行中においてもばんばん中身を変更することができます。

ただ注意点が一つあります。

定義済みの変数に新たにデータを代入すると、それまで保持していたデータは消失します。きれいさっぱり消えてしまいます。上記で説明に使った箱のイメージでいうと、新しい物が入ってくるたびに中身が追い出されると想像していただければわかりやすいと思います。

変数の命名規則

先程box-hello.phpで変数を定義する際にhelloという名前を付けました。helloという変数名は適当につけたわけではなく、変数に名前を付けるルール(命名規則)にしたがって付けたものです。

PHPで変数に名前を付ける場合には幾つかルールがありますので、ご紹介しておきます。

// 変数名に使用できる文字
a ~ z
A ~ Z
0 ~ 9
_ (アンダースコア)

// $ 直後の変数名の先頭で使用できない文字
0 ~ 9

変数名に使用される英文字は大文字小文字が区別されます。また、ひらがなやカタカナ、漢字などを使用することはできません。同様に、数字を変数名の先頭に使用することはできません。

ただ、どうしても変数名の先頭に数字を付けなければならないのであれば、($_0123)のように先頭に_(アンダースコア)を付けることで可能になります。

参考までに使用できる変数名と使用できない変数名のサンプルを以下に記載します。変数に名前を付ける際には先頭に数字は使えない、記号はアンダースコア以外使用できない事を覚えておきましょう。

// 使用可能な変数名
$abcd;
$ABCD;
$_0123;

// 使用不可能な変数名<
$1abc;
$0123;

キャメルケース、スネークケース、ハイフン、ファイル名

変数名や後に登場するクラス名などを付ける際に利用される、キャメルケース、スネークケース、ハイフンについて説明をしておきます。

変数に名前を付ける際、複数の単語を組み合わせることが多々あります。その場合に利用されるのがキャメルケース、スネークケース、ハイフンです。

基本的にはプログラミング言語の慣習に沿った形(標準ライブラリなどに使用されているもの)で記述しますが、意味合いを知っておいて損はないのでご紹介しておきます。また、ファイル名(URL)についても簡単に触れておきます。

キャメルケース

連結する単語の一文字目を大文字で記述します。Java、JavaScript、C++などで利用されています。ローワーキャメルケースとも呼ばれています。

intoTheProgram;

ちなみに、キャメルケースの先頭単語の一文字目を大文字にするとパスカルケースとなります。アッパーキャメルケースとも呼ばれています。

例) IntoTheProgram;

スネークケース

単語を_(アンダースコア)で繋ぎます。PHPは基本的にスネークケースですが、キャメルケースを好んで利用する方もいます。

例) into_the_program;

ハイフン

単語を -(ハイフン)で繋ぎます。HTML、CSSは基本的にハイフンで記述します。Googleのガイドラインでハイフンが推奨されているためそれが定着したものと思われます。名前の先頭に(-)ハイフンは記述できないのでご注意ください。

例) into-the-program;

ファイル名(URL)

SEOでは「into-the-program」だと単語ごとに「into」、「the」、「program」と一単語ずつ解釈され、「into_the_program」だと一つの単語「into_the_program」と解釈されるようです。これに関しては諸説あるのですが、HTMLやPHPのファイル名はそのままWebサイトのURLになるため、複合語を使う場合はハイフンで繋いでおけば問題ないと思われます。

最後に

命名する際のルールは頭の片隅にでも留めておいて、いざ名前を付ける際に思い出してもらえれば思います。

SHARE