PHPまとめ - データ

HOME | TOP

■ データの種類

PHPで扱うデータにはいくつか種類があって、型(データ型)などと言います。

▼ 4種類のスカラー型
型名説明
boolean論理値trueとfalse
integer整数
float(double)浮動小数点数
string文字列

[スカラー型の例] ※このスカラー型だけが唯一、変数値以外に定数値にもなることができます。



▼ 2種類の複合型
型名説明
array配列
objectオブジェクト指向においてnew演算子でインスタンス化したもの

[複合型の例]


▼ 2種類の特別な型
型名説明
resourceリソース(ファイルポインタなど)
nullヌル

[特別な型の例]


■ 変数と定数

データを保持するために「変数」というデータの入れ物を使うことができます。

変数にデータを入れるには、変数から代入するか、定数から代入する方法があります。

最初に代入した「5」は定数になります。(整数値なので整数定数)
PHPコードに直接埋め込んだデータは定数なのでその名のとおり書き換えできないデータです。
一方、変数は書き換えることができるので再び別の値を代入することができます。代入した「Hello world」は文字列の定数なので文字列定数(リテラル)と呼ばれます。


■ 定数いろいろ

定数とは、実行時にはもう値が固定で決まっていて、改変することのできないデータ



▼ ユーザ定義定数

第三引数をtrueにすると、定数名は大文字小文字の区別がなくなる。




▼ クラス定数

クラス内でconstを使って定義できるもの

そのままではクラス内のみ通用する定数なので、外部から参照するにはFooClass::FOOのようにする。




▼ マジック定数

自動的に定義される定数

名前説明
__LINE__ファイル行に置換
__FILE__ファイルのパス
__DIR__dirname(__FILE__)と同じ
__FUNCTION__
__CLASS__
__METHOD__
__NAMESPACE__



▼ 整数定数

スカラー型の整数値で、コードに直書きされたもの




▼ 浮動小数点定数

スカラー型の浮動小数点数で、コードに直書きされたもの




▼ 文字列定数(リテラル)

・文字列をつくる(その1)

上記のように、シングルクォートで囲んだ文字列は書いたままな(変数$iが展開されていない)のに対し、後ろに連結したダブルクォートで囲んだ文字列は展開され「\n」という特殊文字(エスケープシーケンス)まで置き換わっている。

つまりシングルクォートで囲むとそのままで、ダブルクォートで囲むと展開(変数やエスケープシーケンス部分が)されることがわかる。

また、「Can't open file」のようなシングルクォートを含む文字列をシングルクォートで囲むと文字列終端が判別できなくなりエラーになるので「\」文字で「'Can\'t open file'」のようにエスケープする必要がある。(ダブルクォートも同様)




・変数展開の注意点

変数展開を使わないで
$s = 'aaaaaaaaa' . $i . 'iiiiiii';と書いたり(文字列連結)
$s = sprintf('aaaaaaaaa%diiiiiii', $i);と書く方法(sprintf関数のフォーマットを使う)もある。




これ以外の文字列作成方法としてはヒアドキュメントがある。
PHPコードの中に書くことができて、独立したファイル文書みたいに自由に改行も使えるのでレイアウトのイメージがつかみやすくて便利

・ヒアドキュメント

便利なヒアドキュメントですが、注意すべき点として最終行末尾の改行がなぜか削られるバグがあるということ。




・エスケープシーケンス
文字説明
\n改行
\tタブ
\\\文字
\'シングルクォート
\"ダブルクォート
\nnn8進数表記の文字コード
\xnn16進数表記の文字コード



▼ システム定義定数

定義済みなので固定で使える

定数説明
true論理型の真の値。大文字でも小文字でもよい
false論理型の偽の値。大文字でも小文字でもよい
nullNULL型で値を持ってないことを示す。大文字でも小文字でもよい




■ スカラーと配列

スカラーはデータを1つだけ保持できるのに対し、配列はスカラーがいくつも連なったような構造で、キーと値をペアで持ちます。

▼ スカラー型の変数

さまざまな型のデータを同時に1つだけ保持できる。

変数は未定義の(データがない)まま参照すると、未定義エラーになるのでそれを回避するために以下のようにする

よく値が真であることをチェックする場合に「if (isset($scalar) && $scalar)」というifの書き方をする場合があるのでこれは「if (!empty($scalar))」とシンプルに書くことができる。




▼ 配列

配列はキーと値のペアを1つの要素とすると、要素が列になって連なっている感じです。

配列をつくる

配列のキーは数値に限らず、文字列でもよい。(連想配列)

配列の内容をチェックする方法はprint_r()関数を使います。

その他、配列の削除方法は





2010(C)Mingw