変数は値を一時的に格納しておく箱のようなものです。
これに名前をつけ値を入れて処理に使います。
中学のときに数学で x や y などの変数を使いましたがまさに同じようなものです。
ちょっと違うのは数学では数値だけしか扱いませんでしたが、プログラミングでは文字や真偽など数値以外のものも扱います。
変数の宣言方法
PHPの変数は変数名の頭に$をつけて宣言します。
1 |
$yourname = 'Suzuki'; |
のような感じです。
今回は値に ‘Suzuki’ という文字列を入れました。
そして、行の最後には ; をつけてプログラムコードを区切ります。
これが無いと次のコードとごっちゃになってバグります。
よく忘れるものなので気をつけてください。
PHPの変数の型については次に説明します。
変数の型
変数には型があります。
他の言語では変数の宣言時に型も定義する場合もありますが、PHPでは宣言時には型は定義しません。
しかし、変数内に含まれる値には必ず型があるので、その型通りに計算をしないとバグの元になります。
数値
整数や小数を扱えます。
最大は20億くらいだったと思います。
2進数の数値を扱うことも出来るみたいですが使ったこと無いです。
1 2 3 4 |
<?php $num = 123; $num = 0.123; ?> |
文字列
文字列は名前やメッセージなどの文字を扱う型です。
文字列の値には”文字列”や’文字列’のように、文字列をダブルコーテーションやシングルコーテーションで囲みます。
数値も 123 だと数値になりますが、”123”だと文字列として扱われます。
1 2 3 4 |
<?php $str = '文字列'; $str = "文字列"; ?> |
真偽値
true か false です。
「あなたは成人ですか?」などの返答は「はい」か「いいえ」しかありません。それ以外がある場合は真偽値は使えません。
答えが2択の場合に使います。
1 2 3 4 |
<?php $bool = true; $bool = false; ?> |
オブジェクト
PHPはオブジェクト指向の言語なのでオブジェクトを使います。
オブジェクトはStringなどの文字列もありますが、PHPではオブジェクトの元になるクラスを定義し、それを元にオブジェクトを生成することが多いです。
オブジェクト指向の言語と言いましたが、PHPのバージョン5からです。
なので今でもクラスを定義しないでPHPを書く場面は多々あります。
null
何も値が無い状態です。
数値の 0 や、文字列の ”” (空文字)とは別物です。
0や空文字は0や空文字という値になります。
null は変数だけ定義され中身が何も無い状態や、関数などを実行し何も返ってこなかった状態をさします。
null はよく使いコントロールするものなのでしっかり覚えておいてください。
1 2 3 |
<?php $abc = null; ?> |
配列
配列は複数の値を1つの変数に格納したものです。
最初に変数は箱のようなものと説明しましたが、配列は仕切りで区切られた箱のようなイメージです。
PHPの場合はその仕切り1つ1つにインデックスという番号がふられますが、インデックス以外に任意の名前をつけることも出来ます。
Javaで言うMapのような使い方が出来るということです。
1 2 3 |
<?php $ary = array("abc", "def", "ghi"); ?> |
配列は上記のように宣言しますが、この場合は左から順にインデックスが0, 1, 2 となります。
値を取り出すときには、
1 |
$var = $ary[1]; |
のように書きます。
名前をつける場合は、
1 2 3 4 5 6 7 8 |
<?php $ary = array( "key1" => "abc", "key2" => "def", "key3" => "ghi" ); echo $ary["key2"]; ?> |
のように宣言したり、値を取り出したりします。
定数の宣言方法
定数は変数と似ていて値の入れ方とかは同じですが、違うところは一度値を入れたら変更できないところです。
例えばシステムがインストールされたディレクトリやドメインなどを定義します。
これらはもう変更されることはありません。
他には消費税とかですかね?消費税は変わったらプログラムも修正しないといけないですが、数年は変わりません。
変更出来ないというのは、プログラムを書き換えられないという意味ではないです。
一連の処理の中で別の値を代入することが出来ないという意味です。
定数の宣言は以下のように const を使うか、define() を使って定義します。
1 2 3 4 |
<?php const DOMAIN = "dev-lib.com"; define("DOMAIN", "dev-lib.com"); ?> |
定数は、関数や if, for などの中では定義できません。
それと何故か定数は大文字で定義することが多いです。小文字でもいけるのでしょうが、たぶん変数と区別するためだと思います。
まとめ
変数は値を格納する箱のようなもの。
変数名は基本はアルファベットを使い定義する。
変数には型がある。
定数は一度値を決めたら変えられない。
定数の名前は大文字アルファベットを使う。
コメントを残す