〜PHPの変数とは〜
前回の「〜PHPを書くルール〜」に引き続き、今度は変数について勉強したいと思います。
CONTENTS
1.変数とは
変数とはプログラム処理を行う際のデータを格納しておく器のことを言います。格納されるデータはフォームで入力されたデータだったり、データベースから引き出したものだったり様々です。例として、前回のように
1 |
echo 'PHPを勉強しよう'; |
というコードがあったとします。これは「PHPを勉強しよう」と出力されます。それを変数に書き換えると
1 2 |
$supper = 'PHPを勉強しよう'; echo $supper; |
となり、出力結果は同じなのですが、$supperの部分に「PHPを勉強しよう」というデータを格納しています。
データを格納しておく器が$supperでPHPを勉強しようがその器にはいっている中身ということになります。
2.変数の書き方
変数は「$」から書き始めます。
$変数名 = 値;
「$」直後の文字は日本語や全角はもちろん使えません。アンダースコア(_)か英数字を記述するようにしましょう。また、「$」のすぐ後に数字も使えません。大文字と小文字も区別されるので大文字と小文字をつかった場合は同じ文字でも別の変数とみなされます。
$title_1←○
$title1←○
$1title←×
また、変数を書く際のイコール(=)ですが、これは等しいという意味ではなく、この変数($title)にこのデータ(PHPを勉強しよう)を格納します。という意味になります。このイコールを「代入演算子」といいます。
3.変数を複数使う
変数は複数使うことができます。このことを利用して以下のような場合にとても役に立ちます。おなじタイトル(文章)が複数でてくる場合
1 2 3 4 5 6 7 8 9 |
<html> <head> <title>PHPを勉強しよう</title> </head> <body> <h1>PHPを勉強しよう</h1> <p>説明文…</p> </body> </html> |
このような場合でタイトルを変更しなくてはいけなくなった場合は2箇所変更しなくてはなりません。それ以上登場する場合は、その出てくる回数分変更しなくてはなりません。このコードを変数をつかって書き換えて見ます。
1 2 3 4 5 6 7 8 9 |
<?php $title = 'PHPを勉強しよう'; ?>//ここで変数に格納(データを箱に入れる) <html> <head> <title><?php echo $title; ?></title>//変数に書き換える </head> <body> <h1><?php echo $title; ?></h1> </body> </html> |
このような感じで$titleの中にデータを入れておけばechoで呼び出すだけで、呼び出したところ(echoの横の$title)に最初に代入した$titleのデータが表示されます。わざわざ2箇所変更する必要はなくなります。
変数の値は変更可能
変数はプログラムの途中で値を変更することができます。以下のように
1 2 3 4 |
<?php $title = 'PHPを勉強しよう'; $title = '『'. $title . '』'; ?> |
と記述します。これはまず最初に「PHPを勉強しよう」を格納し、次の行で前後に『』を追加する処理をしています。.(ドット)は文字列をつなぐ命令となります。結果$titleは『PHPを勉強しよう』という文として出力されます。
4.定数とは
変数と似たようなものに定数というものがあります。定数は変数と同じような使い方ができ、データを格納することができますが、設定をしたあとは後でデータは変更されません。以下のように書きます。
define(定数名,値);
定数の場合は変数と違い$は使いません。また定義(define)をするので(=)も使いません。
「WordPress(ワードプレス)のインストール」で定数に関するdefineが出てきますが、wordpressの場合は
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/** WordPress のためのデータベース名 */ define('DB_NAME', 'database_name_here'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'username_here'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'password_here'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost'); /** データベースのテーブルを作成する際のデータベースの文字セット */ define('DB_CHARSET', 'utf8'); |
が定数になります。