作成日:2006/05/10
1B 型
1B.1 型付け
PHPはスクリプト言語特有の弱い型付けの言語です。PHP は変数の型宣言をサポートしていません。 基本的に変数の型は実行時の文脈によってPHPが動的に決定します。
用例:
$foo = "1"; // $foo は文字列です ("1")
$foo = $foo + 2; // $foo は整数になりました (3)
$foo = $foo + 0.3; // $foo は浮動少数点になりました (3.3)
$foo = $foo . "4"; // $foo は再び文字列になりました ("3.34")
1B.2 基本型
PHPでは以下の8つの基本型をサポートしています。
| 種類 | 型 | 備考 |
|---|---|---|
| スカラ型 | 論理型(boolean) | TRUE/FALSE |
| 整数(integer) | ||
| 浮動小数点数 (float または double) | ||
| 文字列(string) | ||
| 複合型 | 配列(array) | |
| オブジェクト(object) | ||
| 特別な型 | リソース(resource) |
外部リソースへのリファレンス(ハンドル) 例:ファイル、データベース接続、イメージキャンバス |
| ヌル値(NULL) |
1B.3 擬似的な型
PHPマニュアルで使用される擬似的な型です。 マニュアルの説明上または慣習上の型で文法的な意味はありません。 以下簡単に説明します。
| 種類 | 型 | 備考 |
|---|---|---|
| 擬似的な型 | mixed | 関数の引数に多様な型(全てではない)を使うことができることを示します。 |
| number | 関数の引数が integer または float のどちらでもよいことを示します。 | |
| callback |
コールバック関数を示します。
call_user_func() や usort()等 の関数は、引数に関数を指定します。 用例:
function foo($bar) {
echo "Hello $bar";
}
call_user_func("foo","world");
|
1B.4 型情報の取得(デバッグ関数)
高度な開発環境を使っていたとしてもデバッグライトは有効なテスト手段です。 PHP環境では標準で変数のダンプ関数が用意されています。
| 関数名 | 説明 |
|---|---|
| var_dump() |
型と値をダンプします。 用例:
$a = array(1,2,3); $b = 123; $c = "123"; var_dump($a,$b,$c); |
| gettype() |
型を表す以下の文字列を返します。
用例:
$a = array(1,2,3); echo gettype($a); // array $b = 123; echo gettype($b); // integer $c = "123"; echo gettype($c); // string |
1B.5 型の判定(is_type系関数)
ある変数の型が何であるかは、is_type系関数によって判定できます。
| 関数名 | 説明 |
|---|---|
| is_bool() | 論理値の場合、真を返します。 |
| is_int() is_integer() is_long() |
整数の場合、真を返します。 ※is_integer()/is_long() は is_int()のエイリアスです。 |
| is_real() is_float() is_double() |
浮動小数点数の場合、真を返します。 ※is_real()/is_double() は is_float() のエイリアスです。 |
| is_string() | 文字列の場合、真を返します。 |
| is_array() | 配列の場合、真を返します。 |
| is_resource() | リソースの場合、真を返します。 |
| is_object() | オブジェクトの場合、真を返します。 |
| is_null() | NULL値の場合、真を返します。 |
| is_numeric() | 数値または数値文字列の場合、真を返します。 |
| is_scalar() | スカラー(論理値、整数、浮動小数点数、文字列)の場合、真を返します。 |
1B.6 型キャスト
PHP の型キャスト構文は、C言語と同型です(但し型名は異なります)。
| キャスト | 構文 |
|---|---|
| 整数へ | (int), (integer) |
| 論理値へ | (bool), (boolean) |
| 浮動小数点数へ | (float), (double), (real) |
| 文字列へ | (string) |
| 配列へ | (array) |
| オブジェクトへ | (object) |
用例:
$s = (string)$i; $s = (string)(123);
1B.7 NULL
NULL 値は、ある変数が値を持たないことを表します。 NULL は、NULL型の唯一の値です。
用例:
$bar; // 未代入の変数はNULLです
$bar=NULL; // NULLを代入するとNULLになります
unset($bar); // unset(変数の破棄)するとNULLになります
if (is_null($bar)) echo('NULL' ); // NULL値の判定
if (!isset ($bar)) echo('NOSET'); // issetはis_nullの否定を返します
if (empty ($bar)) echo('EMPTY'); // NULL値はempty(変数は空)です
if (!$bar) echo('FALSE'); // NULL値は偽(FALSE)です
※empty()は変数がNULLまたは0に類するもの(0,'',FALSE)の場合、TRUEを返します。※empty($var)は(bool)$varの否定です。
