定数と変数

これより PHPスクリプトを作成するための規則や文法について学びます。
多くの開発言語でも利用されている「定数」や「変数」があるように、PHPも例に漏れず同じことが使われます。PHP学習の基本となりますので、しっかり覚えてください。
定数
定数とは、格納された値が何らかの計算によって変わるということのない、「不変の値」を持ちます。つまり、格納された値は常に同じ値を保持しています。
PHPでは、定数を定義するために、define()関数を使い、定数名とその値を引数とします。以下が定数を定義するための公式です。
 define("定数名", "値");
define()関数とは、ある値を定数に定義するもので、定数以外の変数は、その値を変化させることができます。プログラム中に、ある値の中身を変えたくない場合には「定数」を定義しておくと便利です。
例えば人の名前や場所の名前などは変化するものではありません。そんな使い方の場合に定数を定義しておくようにします。
  <?php
     define("banban", "ばんばん");
     print(banban);                // 定数banban の中身を表示する
  ?>
変数
プログラム開発言語のほとんどで利用される「変数」とは、一時的にデータの「値」を格納し、計算結果などによってその値の内容が変化する性質を持ちます。
変数は、「代入演算子」によって値を変数に格納します。PHPでは、変数の行頭に「$」を設けて、それが変数であることを示します。
  $変数名 = 変数に代入する値
PHPでは、「変数の型」として、論理値や整数などの 「スカラー型変数」や、配列やオブジェクトを扱う 「複合型変数」、リソースやヌルコードを扱う 「特殊な型」に大別されています。
以下に、変数の様々な「型」を紹介していますが、PHPでは特に変数のデータ型を宣言して使う必要がありません。こうした「曖昧さ」、「いい加減さ」が万人受けする言語でもあるということが言えるでしょう。
論理値 boolean
論理値は簡単に述べると、その変数に代入される値が「true」あるいは「false」のどちらかを扱う「真偽の値」を持つ変数です。
例えば、数値の値が 0 や 0.0 、何もセットされないヌルコードなどが論理値の「false」として扱われます。なお、実際の記述では、大文字と小文字を区別することはありません。
  $banban = true;
整数 integer
整数とは、浮動小数点以下の値を持たない、あるいは切り捨てられる値を持つ変数です。PHPで扱える一般的な整数の範囲は、-2,147,483,645 〜 2,147,483,645 になっており、小数点や指標を含まないものを整数と呼びます。
  $banban = 2000;
浮動小数点数 float
浮動少数点数とは、小数点以下の数値を持った型になります。PHPでは、14桁の数値を扱えることから、広く科学技術計算などに利用されます。
  $banban = 3.14159265;
文字列 string
文字列変数とは、まさに文字列(テキスト)を値とした変数です。英字や漢字、かななどを扱うことができる非常に応用範囲の広い変数となっています。
代入できる文字列の長さに制限がないのも PHPの特徴です。文字列を代入する場合には、シングルコーティション「 ' 」、あるいはダブルコーティション「 " 」で囲みます。
  $banban = "ばんばんは当サイトの作者のハンドルネームです";
なお、コメントはスラッシュ「 / 」を2つ続けて「 // 」とすることで、コメントとして解釈され無視されます。ただし、改行すると、コメントが終了します。
変数のデータ型変換
PHPでは、厳密な変数の型変換は行われません。そのため、最低限知っておかなければならない変数の変換について述べます。
ダブルコーティション、あるいはシングルコーティションで囲まれた変数は、それが例え数値であっても文字列変数となります。それに反して、何も囲まなければ数値変数になります。ただし、文字列を何も囲まなければエラーとなります。
面白いことに、変数が文字型変あっても、先頭に来る値が数値の場合、妙な結果を提示します。
  <?php
  $a = 100;
  $b = "123はいちにぃさん";
  $c = $a + $b;
      print($c);
  ?>
このスクリプトの出力結果は以下のとおりです。 数値変数と文字列変数を加算した結果を Mozillaブラウザで出力した画像。答えは 223になる。
数値変数 $a に、文字列変数 $b に代入される値の先頭の文字列を数値として解釈し、100+123=223 という演算結果を出力してしまいます。
PHPだけに見られるデータ型変換が行われた結果を垣間見ることができます。非常に面白い言語であることがご理解できることでしょう。
変数の自動生成
PHPは、時としてミスに対して寛容なところがあります。しかし、困ったことにミスに気がつかない場合があり、逆にデバックできなくなる傾向もあります。
例えば、以下の構文のとおり、
  <?php
    $banban = "ばんばん";
      print($banbna);
  ?>
この構文の記述ミスに気がつきましたか?
変数 $banbanに値を代入してから、その結果を表示しようとしていますが、その時の変数の記述にミスタイプがあります。「$banban」→「$banbna
PHPでは、このような変数のミスタイプをエラーとして何も表示されません。つまり、定義していない変数を自動的に生成され、作者が単純なタイプミスに気がつかない側面を持っています。
変数の命名規則
PHPでは、変数の頭にドル記号「 $ 」を付けなくてはなりません。厳密な変数の型変換は行われませんので、それが文字列データであっても、数値データであっても、基本的な変数の書き方は同じです。
PHPの変数名は、先頭に数字があってはいけません。基本的には、大文字と小文字を区別しませんが、対象によって異なる場合があります。
PHPで利用できる命名の文字
   a 〜 z
   A 〜 Z
   0 〜 9 (先頭には利用できない)
  0x7F 〜 0xFF までのコードを持つ文字
   _      (アンダーバー)
この規則に従えば、日本語も変数として扱うことができます。


This Page is HTML4.01 Valid!最新更新日 2004年1月12日   最新更新日 2004年4月1日
Copyright(C) 2002〜2004 banban@scollabo.com