超基本!PHPでの変数・参照・定数の宣言の仕方まとめ

PHPを始めるときに最初に覚えておかないといけないことの1つが変数とか定数の宣言の仕方です。

すごく基本的なことでこれを覚えていないと何も作れません。

という訳でいまさらですが、これからPHPを始める人のためにまとめてみたいと思います。

PHPの変数の3つの宣言の仕方

PHPでは変数宣言の仕方は次の3パターン

  • 普通の変数として宣言
  • 参照として宣言
  • 定数として宣言

この3つについて宣言の仕方について詳しく説明していきます。

普通の変数として宣言

普通の変数宣言の仕方は簡単で次のように変数名の前に  $  をつけるだけです。

$  が前についたものが変数として認識され、数値とか文字列とかの色々な値が入れられます。

これを使うことで値を保存したり処理に使うことができるわけです。

 

ただし他の言語とは違って変数の前に型などを書く必要はありません

例えば次はJavaでの変数宣言の例

こういう風に言語によっては型がないと変数が認識できないものもあります。

 

もちろんPHPにも int とか 文字列 とかの型はありますが、代入する値によってPHP側が勝手に解釈してくれるのでだいぶ楽です。

むしろ他の言語と同じ感覚で型をつけてしまうとエラーになるので要注意ですね。

参照として宣言

PHPでは変数に別名をつけることもできます。

それでそのために使われる変数が参照と呼ばれるものです。

 

参照の宣言の仕方は簡単で参照にしたい変数に参照元の変数を  =&  で代入するだけです。

例えば次のように

このようにして作成した参照は元々の変数の別名となります。

つまりこのコードでいえば  $org  と  $ref  は全く同じ変数だということです。

 

なので次のコードのようにどちらかの変数を変更すればもう一方の変数の値も変わります。

 

そしてこの参照が使われるのは次のような用途

  • 関数に値を変更したい変数を参照渡しするため
  • foreachのループ内で配列を変更するため

ぱっと思いつくのはこれくらいですかね。

 

詳しい実例については次の記事で書いたのでそちらをどうぞ

 

実際参照を使うことは上で挙げた例以外はほとんどないと思います。

ほとんどのことは普通の変数を使えばできるので本当に必要な時以外は参照は使う必要はありません。

定数として宣言

値を変更したくないけどそのままの値をいちいち書きたくない・・・

そういう時に使えるのが定数です。

この宣言の方法には次に書くように2つのやり方があります。

 

まず1つめは次のように定数をdefine関数で定義する方法

このように書けば PI という名前で 3.14 という値を持つ定数ができます。

そして実際に定数を使う場合は次のようにして使うことが可能

ただしこのコードを見ればわかるように変数の前に $ を書いてはいけません。

もし $ を書いてしまうと文法エラーになってしまうので要注意です。

 

そして2つめの方法が次のように const で宣言する方法

これでも define と同じように定数が宣言できます。

 

それでこの定数がどういう場面で使えるかというと次のような場合

  • バージョンとかIDを定義したり
  • 最大値とか最小値とかを定めたり
  • デバッグ用の変数を作ったり

PHP中にそのまま謎の値(いわゆるマジックナンバー)が出てくると混乱のもとになるので定数は上手く使っていきたいですね。

ここまでのまとめ

ここまでの変数宣言の仕方を簡単にまとめると次の通り

  • 変数の宣言
    変数名の前に $ をつけて宣言。ただし型とか書く必要なし
    例 :  $num = 100;
  • 参照の宣言
    参照にしたい変数に参照先の変数を  =& を使って代入。
    例 :  $ref =& $org;
  • 定数の宣言
    define関数または const を使って宣言
    例(defineを使う場合) :  define( 'PI', 3.14 );
    例(constを使う場合) :  const PI = 3.14;

 

という訳でPHPでの変数宣言についてまとめてみました。

超基本的なことなので絶対に忘れないようにしたいですね。

ではでは($・・)/~~~

PHP

Shareこの記事をシェアしよう!

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください