宣言と定義

変数を宣言する。変数を定義する。

よくプログラミング言語では、「宣言」とか「定義」とかって言葉が出てきます。

例えば、「変数を宣言する」とか「変数を定義する」とかって使うものですね。

最初のときは「何が違うの?」と思うでしょう。

この違いは下記のようになっています。

変数を宣言する ・・・ この名前の変数を使うよ!と機械に教えてあげる(機械に宣言する)

変数を定義する ・・・ この名前の変数で、変数の中身はこれだよ!と機械に教えてあげる(機械に定義する)

変数を宣言する

宣言の場合は、下のコードのように変数名をつけて、「この変数をいつか使うよ!」と機械に伝えるだけです。

この時にはまだ変数の中身(値)は何が入るか決まっていない状態です。

PHPオブジェクト指向部を学んだ人は「クラスのプロパティ」を思い出して下さい。

クラスのプロパティも通常変数を宣言するだけで中には何も入れませんよね。

変数を定義する

定義する場合、下のコードのように変数名を宣言すると同時に「初期値」というかたちで、変数の中身を入れてあげます。

 

php言語やjavascript言語はその値が文字列なのか数値なのかといった「値の型」を気にせずプログラミング出来てしまいますが、実は「宣言」と「定義」はC言語(プログラミング言語の元祖みたいなもの)の時に使われていたもので、「宣言」しただけの変数に「値がない状態(中に何がはいっているか分からない状態)」で何か操作をしようとすると(例えば足したり引いたり)エラーになります。

そういうのもあって「宣言」と「定義」は明確に分かれているわけです。