変数と定数
変数
変数は、文字列や数値などを入れる箱です。
変数のルール
- 変数名はドル記号($)から始まります。
- 変数名は大文字と小文字を区別します。($aと$Aは別の変数だと認識されます。)
- 変数名として使える文字は、英大文字小文字(a~zもしくはA~Z)と数字(ただし、先頭には使えません。)と_(アンダーバー)です。
- 下記の変数はPHP言語で定義されているので使えません
$this・$GLOBALS・$_SERVER・$_GET・$_POST・$_COOKIE・$_FILES・$_SESSION - 変数は、プログラム内で入っているデータ(値)を変える事ができます。
書き方例
<?php $abc = 〝こんにちは〝; echo $abc; ?>
「=」は代入という意味の演算子です。abcという名前の変数に”こんにちは”と入れています。
その変数をechoを使って出力しています。
実行結果
定数
定数は変数と同じ、文字列や数値を入れる箱です。ただし、再設定は出来ません。
定数のルール- 定数は、先頭にドル記号($)が必要ありません。
- 変数名として使える文字は、英大文字小文字(a~zもしくはA~Z)と数字(ただし、先頭には使えません。)と_(アンダーバー)です。
定数は大文字で定義されることが多いです。 - 定数を定義することができるのは、define関数 のみです。(単なる代入(=)による定義はできません。)
- 定数は一度設定されると再定義または未定義とすることはできません。
- 定数に指定できるのは、データ型がboolean, integer, double, string, NULL のみです。
<?php define("TITLE", "こんにちは"); ?>
データ型
文字列(string)
stringは、文字が連結されたものです。PHPでは、 文字は 1 バイトと同じです。つまり、256個の異なる文字を使用可能です。
文字列は、「"」(ダブルクォーテーション)、もしくは「'」(シングルクォーテーション)で囲います。
<?php $abc = 〝こんにちは〝; ?>
整数(integer)
10進数、16進数、8進数 表記で指定可能です。符号(-または+)を前に付けることが可能です。 8 進数表記を使用する場合、数の前に 0 (ゼロ) を付ける必要があります。また、16 進数表記を使用するには、数の前に 0x を付ける必要があります。
書き方例<?php $a = 1234; // 10進整数 $a = -123; // 負の数 $a = 0123; // 8進数 (10進数の83と等価) $a = 0x1A; // 16進数 (10進数の26と等価) ?>
論理型(boolean)
真偽の値を表します。 データ(値)の値は、TRUE(真) または FALSE(偽)です。(大文字・小文字どちらもOK)
書き方例<?php $foo = True; // 値TRUEを$fooに代入する ?>
浮動小数点数(float, double)
小数点付きの数値のことです。 3.14 や 0.004 などです。
また、0.015E2(0.015*10の2乗 で 1.5となります。)などの指数形式の記法にも対応しています。
<?php $a = 1.234; $b = 0.2e3; // 200 $c = 3E-4; // 0.0003 ?>
浮動小数点型の大きさはプラットフォームに依存しますが、1.8E-308から01.8E+308までの精度14桁となっています。(10進数 64ビット IEEE フォーマット)
浮動小数点型の値は近似値になります。7.6 は 7.5999999999 という値で表されます。つまり、浮動小数点数を正確な値で処理することを期待したコードを記述してはいけないということになります。
NULL
特別な NULL 値は、ある変数が値を持たないことを表します。NULL は、null 型の唯一の値です。
NULL 型の値は一つだけで、 大文字小文字を区別しない定数 「NULL」です。
変数は、以下の場合に NULL とみなされます。
・定数 NULL が代入されている場合。
・まだ値が何も代入されていない場合。
・unset() されている場合。 (指定した変数の割当を解除した場合)
演算子
演算子とは、変数や定数などの値に対して、計算や文字列の連結、比較などの操作を行うために用意されているものです。
比較演算子と論理演算子については3日目条件分岐にて説明いたします。
代数演算子
数値の計算を行う時に使う演算子です。足し算・引き算・掛け算・割り算など、普段計算で使っているものです。
例 | 内容 | 結果 |
---|---|---|
-$a | 負にする | $a の逆 |
$a + $b | 加算 | および $b の合計 |
$a - $b | 減算 | と $b の差 |
$a * $b | 乗算 | および $b の積 |
$a / $b | 除算 | および $b の商 |
$a % $b | 剰余 | を $b で割った余り |
<?php // それぞれの変数に値(データ)を代入 $a = 9; $b = 3; $c = 10; // $a と $b を足し算した結果を$answer1に代入 $answer1 = $a + $b; // $a から $b を引いた結果を$answer2に代入 $answer2 = $a - $b; // $a と $b をかけた結果を$answer3に代入 $answer3 = $a * $b; // $a を $b で割った結果を$answer4に代入 $answer4 = $a / $b; // $c を $b で割った余りを$answer5に代入 $answer5 = $c % $b; ?>
代入演算子と複合演算子
変数に値や計算結果を代入するための演算子です。代入演算子(=)と代数演算子などを組み合わせたものを複合演算子といいます。
例 | 結果 |
---|---|
$a = $b | $aに$bの値を代入 |
$a += $b | $aに$bの値を加算して代入($a = $a + $bと同じ) |
$a -= $b | $aに$bの値を減算して代入($a = $a - $bと同じ) |
$a *= $b | $aに$bの値を乗算して代入($a = $a * $b) |
$a /= $b | $aに$bの値を除算して代入($a = $a / $b) |
$a %= $b | $aに$bの値を剰余算して代入($a = $a % $b) |
$a .= $b | $aに$bの文字列を連結して代入($a = $a.$bに等しい) |
文字列演算子
文字列の演算子は 2 種類あります。
結合演算子('.')で、右引数と 左引数を結合したものを返します。
結合代入演算子('.=')で、 この演算子は右側の引数に左側の引数を追加します。
<?php $a = "Hello "; $b = $a . "World!"; // $b は、"Hello World!" となります。 $a = "Hello "; $a .= "World!"; // $a は、"Hello World!" となります。 ?>
加算子と減算子
加算子はインクリメント・減算子はデクリメントと、言います。
例 | 名前 | 効果 |
---|---|---|
++$a | 前置加算子 | $a に 1 を加え、$a を返します。 |
$a++ | 後置加算子 | $a を返し、$a に1を加えます。 |
--$a | 前置減算子 | $a から 1 を引き、$a を返します。 |
$a-- | 後置減算子 | $a を返し、$a から 1 を引きます。 |
インクリメント演算子とデクリメント演算子には、2種類書き方があります。
前置と言われる++$a(--$a)と、後置と言われる$a++($a--)です。
前置と後置では演算を行うタイミングが違います。
前置は変数の参照より先、後置では変数の参照後です。
そのために2つの演算結果には違いがあります。
<?php // 後置加算 $a = 5; echo "5 となります: " . $a++ . "
"; echo "6 となります: " . $a . "
"; // 前置加算 $a = 5; echo "6 となります: " . ++$a . "
"; echo "6 となります: " . $a . "
"; // 後置減算 $a = 5; echo "5 となります: " . $a-- . "
"; echo "4 となります: " . $a . "
"; // 前置減算 $a = 5; echo "4 となります: " . --$a . "
"; echo "4 となります: " . $a . "
"; ?>