変数・データ型関連変数操作関数
- debug_zval_dump〔内部的なZendの値を表す文字列をダンプする〕
- empty〔変数がセットされているかどうか調べる〕
- floatvar/doublevar〔変数のfloat値を取得〕
- get_defined_vars〔全ての定義済みの変数を取得〕
- gettype〔変数の型を取得〕
- is_array〔変数が配列かどうか調べる〕
- is_bool〔変数が論理値かどうか調べる〕
- is_float, is_double, is_real〔変数がfloat型かどうか調べる〕
- is_int, is_integer, is_long〔変数が整数かどうか調べる〕
- is_null〔変数がNULLかどうか調べる〕
- is_numeric〔変数が数値かどうか調べる〕
- is_resource〔変数がリソースかどうか調べる〕
- is_scalar〔スカラ変数かどうか調べる〕
- is_string〔変数が文字列かどうか調べる〕
- isset〔変数が存在するかどうか調べる〕
- print_r〔変数に関する情報を分かりやすく出力〕
- settype〔変数の型を設定〕
- unset〔変数を解放する〕
- var_dump〔指定した変数に関する情報をダンプする 〕
- var_export〔変数の文字列表現を出力または返す〕
debug_zval_dump
内部的なZendの値を表す文字列をダンプする
unknown
内部的なZendの値を表す文字をダンプします。 返り値はありません。
第1引数variableには、評価される変数を指定します。
<?php
$var1 = 'Hello World';
debug_zval_dump($var1);
?>
empty
変数がセットされているかどうか調べる
unknown
指定した変数が空かどうかを調べます。
変数が空でない、あるいは0でない値の場合にFALSEを返します。
空とは次のことを指します。
- "" 空文字列
- 0
- "0"
- NULL
- FALSE
- array() 空の配列
- var $var;(変数が宣言されているのにクラスの中で値が設定されていない)
<?
$var = 0;
if(empty($var)) echo "セットされてます";
else echo "false";
//セットされてます
$var = "0";
if(empty($var)) echo "セットされてます";
else echo "false";
//セットされてます
$var = "";
if(empty($var)) echo "セットされてます";
else echo "false";
//セットされてます
$var = " ";
if(empty($var)) echo "セットされてます";
else echo "false";
//false
$var = NULL;
if(empty($var)) echo "セットされてます";
else echo "false";
//セットされてます
?>
floatvar/doublevar
変数のfloat値を取得
unknown
float doublevar ( mixed $変数 )
変数のfloat値を返します。変数にはスカラー型のみ使用可能です。 スカラー型ではない配列やオブジェクトは使用できません。
doublevar()関数は、この関数のエイリアスです。
PHP4.2.0未満の場合は、doublevar()関数を使用してください。
<?
$var='123.45ABC6789';
echo floatval($var); //123.45
?>
get_defined_vars
全ての定義済みの変数を取得
unknown
環境変数、サーバー変数、この関数が呼び出されたスコープ内のユーザ定義の変数を含む、全ての定義済みの変数情報を有する多次元配列を返します。
<pre>
<?
// 定義済みの変数を全て出力
print_r ( get_defined_vars() );
// 変数の配列で利用可能なキー(変数名)を全て出力
print_r ( array_keys ( get_defined_vars() ) );
?>
</pre>
gettype
変数の型を取得
unknown
変数の型を返します。 型が不明の場合は、"unknown type"を返します。
この関数の返り値の文字列は、将来のバージョンで変更される可能性があるため特定の型を調べるのに使用しないように。 また、文字列比較を行うため処理が遅いので、型を調べるならis_*関数を使用した方が高速です。
返り値(文字列) | 意味 |
---|---|
'boolean' PHP4以降 | 論理値 |
'integer' | 整数 |
'double'('float'の場合にも'double'が返される) | 浮動小数点 |
'string' | 文字列 |
'array' | 配列 |
'object' | オブジェクト |
'resource' PHP4以降 | リソース |
'null' PHP4以降 | ヌル |
'user function' PHP3のみ | ユーザー定義関数 |
'unknown type' | 型不明 |
<?
$var = true;
echo gettype($var) . "<br>"; //boolean
$var = 1234;
echo gettype($var) . "<br>"; //integer
$var = "もじもじ";
echo gettype($var) . "<br>"; //string
$var = array(1,2,3);
echo gettype($var) . "<br>"; //array
$var;
echo gettype($var) . "<br>"; //NULL
?>
is_array
変数が配列かどうか調べる
unknown
変数が配列であればTRUE、そうでなければFALSEを返します。
<?
$var = Array("a","b","c");
if(is_array($var)) echo "配列です";
else echo "false"; //配列です
$var = Array("");
if(is_array($var)) echo "配列です";
else echo "false"; //配列です
$var = Array();
if(is_array($var)) echo "配列です";
else echo "false"; //配列です
$var = "a";
if(is_array($var)) echo "配列です";
else echo "false"; //false
?>
is_bool
変数が論理値かどうか調べる
unknown
変数が論理値(TRUE/false)であればTRUE、そうでなければFALSEを返します。
<?
$a = false;
$b = 0;
// false は boolean なので、true
echo (is_bool($a)) ? "true" : "false", "<br>\n"; //true
// 0 は boolean ではないので、false
echo (is_bool($b)) ? "true" : "false", "<br>\n"; //false
?>
is_float, is_double, is_real
変数がfloat型かどうか調べる
unknown
bool is_double ( mixed $変数 )
bool is_real ( mixed $変数 )
変数がfloat型(浮動小数点)であればTRUE、そうでなければFALSEを返します。
is_double()関数、is_real()関数は共にこの関数のエイリアスです。
第1引数「変数」が数値または数値文字列(フォームの入力値は常に文字列)の場合は、これらの関数ではなくis_numeric()関数を使用して評価してください。
<?
$var = 0.00001; // 論理値
var_dump($var); //float(1.0E-5)
echo (is_float($var)) ? "true" : "false;"; //true
?>
is_int, is_integer, is_long
変数が整数かどうか調べる
unknown
bool is_integer ( mixed $変数 )
bool is_long ( mixed $変数 )
変数が整数であればTRUE、そうでなければFALSEを返します。
is_integer()関数、is_long()関数は、この関数のエイリアスです。
第1引数「変数」が数値または数値文字列(フォームの入力値は常に文字列)の場合は、これらの関数ではなくis_numeric()関数を使用して評価してください。
<?php
$a = 100;
$b = "100";
// 100 は int なので、true
echo (is_int($a)) ? "true" : "false", "<br>\n"; //true
// "100" は int ではないので、false
echo (is_int($b)) ? "true" : "false", "<br>\n"; //false
?>
is_null
変数がNULLかどうか調べる
unknown
変数がNULLの場合にTRUE、そうでない場合(0、"0"、""、" ")にFALSEを返します。 空文字列の場合は、何も返りません。
<?
$var = 0;
if(is_null($var)) echo "NULLです";
else echo "false";
//false
$var = "0";
if(is_null($var)) echo "NULLです";
else echo "false";
//false
$var = "";
if(is_null($var)) echo "NULLです";
else echo "false";
//false
$var = " ";
if(is_null($var)) echo "NULLです";
else echo "false";
//false
$var = NULL;
if(is_null($var)) echo "NULLです";
else echo "false";
//NULLです
?>
is_numeric
変数が数値かどうか調べる
unknown
変数が数値または数値文字列であればTRUE、そうでなければFALSEを返します。
<?
$var = 1;
echo (is_numeric ($var)) ? "true" : "false", "<br>\n"; //true
$var = 0;
echo (is_numeric ($var)) ? "true" : "false", "<br>\n"; //true
$var = "0.01";
echo (is_numeric ($var)) ? "true" : "false", "<br>\n"; //true
$var = "-2";
echo (is_numeric ($var)) ? "true" : "false", "<br>\n"; //true
$var = "a";
echo (is_numeric ($var)) ? "true" : "false", "<br>\n"; //false
$var = "";
echo (is_numeric ($var)) ? "true" : "false", "<br>\n"; //false
?>
is_resource
変数がリソースかどうか調べる
unknown
変数がリソースであればTRUE、そうでなければFALSEを返します。
<?
//MySQLの接続IDが有効かどうか調べる
$linkID = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($linkID)) {
die('Can\'t connect : ' . mysql_error());
}
?>
is_scalar
スカラ変数かどうか調べる
unknown
変数がスカラ変数(integer、float、string、boolean)であればTRUE、そうでなければFALSEを返します。
array、object、resource はスカラ変数ではありません。
<?
function chk_scalar($var){
if (is_scalar($var)) echo $var;
else echo "スカラ変数ではない";
}
$bool = true; //boolean(論理値)
$array = array(1,2,3); //array(配列)
chk_scalar($bool); //1
chk_scalar($array) //スカラ変数ではない
?>
is_string
変数が文字列かどうか調べる
unknown
変数が文字列であればTRUE、そうでなければFALSEを返します。
<?
$var= "123";
echo (is_string ($var)) ? "true" : "false", "<br>\n"; //true
$var = "文字です";
echo (is_string ($var)) ? "true" : "false", "<br>\n"; //true
?>
isset
変数が存在するかどうか調べる
unknown
変数が存在すればTRUE、存在しなければFALSEを返します。 unset()関数によって変数を解放した場合や、NULL値を検索した場合もFALSEが返ります。 この関数は何らかの値が渡された変数のみ動作するため、何も値が渡されていない変数に使用するとParse Errorが発生します。
定数が定義されているか調べるには、この関数ではなくdefined()関数を使用します。
<?
$var = 0;
echo (isset($var)) ? "セットされています" : "false", "<br>\n"; //セットされています
$var = "0";
echo (isset($var)) ? "セットされています" : "false", "<br>\n"; // セットされています
$var = ""; // 空文字列はTRUEになる
echo (isset($var)) ? "セットされています" : "false", "<br>\n"; // セットされています
$var = " "; // 空白スペースはTRUEになる
echo (isset($var)) ? "セットされています" : "false", "<br>\n"; // セットされています
unset($var); // 変数を開放した場合は、FALSEになる
echo (isset($var)) ? "セットされています" : "false", "<br>\n"; // false
$var = NULL; // NULL値はFALSEになる
echo (isset($var)) ? "セットされています" : "false", "<br>\n"; // false
?>
print_r
変数に関する情報を分かりやすく出力
unknown
変数の値に関する情報をを分かりやすい形式で出力します。
string型、integer型、float型の変数を指定した場合は、その値が出力されます。
array(配列)、object型の変数を指定した場合は、キーと値を表す形式key => value
で表示されます。
オプション引数return(PHP4.3.0以降)にTRUEを指定すると、結果を直接出力せずに結果の文字列を返します。
この関数は配列ポインタを終端まで移動させるので、ポインタを先頭に戻すにはreset()関数を使用します。
<?
$array = Array("100",200,"apple","b"=>"banana");
print_r($array); //array ( 0 => '100', 1 => 200, 2 => 'apple', 'b' => 'banana', )
//結果を直接出力しない場合は、return に TRUE を指定
$ret = print_r($array, TRUE);
print_r($ret); //array ( 0 => '100', 1 => 200, 2 => 'apple', 'b' => 'banana', )
//配列の中身を見やすく改行を入れて表示
echo nl2br(print_r($array, TRUE));
/* 出力コード
Array<br>
(<br>
[0] => 100<br>
[1] => 200<br>
[2] => apple<br>
[b] => banana<br>
)<br>
*/
?>
settype
変数の型を設定
unknown
変数を指定した型に変換します。 成功した場合にTRUE、失敗した場合にFALSEを返します。
型 | 意味 |
---|---|
'boolean' PHP4.2.0以降は、'bool' | 論理値 |
'integer' PHP4.2.0以降は 'int' | 整数 |
'float' PHP4.2.0以降のみ 'double' 古いバージョン | 浮動小数点 |
'string' | 文字列 |
'array' | 配列 |
'object' | オブジェクト |
'null' PHP4.2.0以降 | ヌル |
<?
$bar = true; // 論理値
var_dump($bar); //bool(true)
settype($bar, "string"); // 文字列に型変更
var_dump($bar); //string(1) "1"
?>
unset
変数を解放する
unknown
変数を解放します。
PHP4以降から返り値がなくなったため、この関数の値を取得しようとするとParse Errorが発生します。
<?
//変数を破棄
$var = "abc";
unset ($var);
echo $var; //何も出力されない
//配列の要素の1つを破棄
$array = Array("a"=>"apple","b"=>"banana","c"=>"cocoa");
unset ($array["b"]);
print_r($array); //Array ( [a] => apple [c] => cocoa )
//複数の変数を破棄
$var1 = "a"; $var2 = "b"; $var3 = "c";
unset ($var1, $var2, $var3);
echo $var; //何も出力されない
?>
var_dump
指定した変数に関する情報をダンプする
unknown
指定した変数に関して、その型や値を含む構造化された情報を返します。 返り値はありません。 変数を複数指定する場合は、カンマ区切りで指定します。
<?
$array = Array("100",200,"apple","b"=>"banana");
var_dump($array);
/*
array(4) {
[0]=>
string(3) "100"
[1]=>
int(200)
[2]=>
string(5) "apple"
["b"]=>
string(6) "banana"
}
*/
?>
var_export
変数の文字列表現を出力または返す
unknown
変数に関する構造化された情報を返します。 var_dump()関数と似ていますが、返される表現が有効なPHPコードである点が異なります。
オプションの第2引数returnにTRUEを指定すると変数表現を返します。 省略またはFALSEを指定した場合はNULLを返します。
<?
$array = Array("100",200,"apple","b"=>"banana");
var_export ($array); //array ( 0 => '100', 1 => 200, 2 => 'apple', 'b' => 'banana', )
//結果を直接出力しない場合は、return に TRUE を指定
$ret = var_export ($array, TRUE);
print_r($ret); //array ( 0 => '100', 1 => 200, 2 => 'apple', 'b' => 'banana', )
?>