PHP は 8 つのプリミティブ データ型をサポートしています。
4 つのスカラー型:
? boolean (ブール型)
? float (浮動小数点型、double とも呼ばれます)
? 2つのコンポジットタイプ:
? 配列 (配列)
? オブジェクト (オブジェクト)
最後に 2 つの特別なタイプがあります:
? リソース (リソース) )
コードの可読性を確保するために、いくつかの疑似型もあります。変数 $...
変数の型は通常、プログラマによって設定されるのではなく、変数が使用されるコンテキストに基づいて実行時に PHP によって決定されます。
式の値と型を確認したい場合は、
var_dump() 関数を使用します。デバッグ用に人間が判読できる型の表現が必要なだけの場合は、次を使用します。
gettype
() 関数。型を確認するには、gettype() を使用せず、is_type 関数を使用します。変数を特定の型に強制したい場合は、cast または
settype() 関数。
【ブール値】
ブール値を指定するには、キーワード TRUE または FALSE を使用します。どちらも大文字と小文字は区別されません。
ブール値に変換する
値をブール値に明示的に変換するには、(bool) または (boolean) を使用してキャストします。 ブール値に変換すると、次の値は FALSE とみなされます: ? ブール値そのもの ? 浮動小数点値 0.0 (ゼロ) ? ? 空の文字列、および文字列 "0"
? 要素を含まない配列
? 特殊な型 NULL (まだ割り当てられていない変数を含む) )
? 空のタグから生成された SimpleXML オブジェクト
[integer]
整数値は 10 進数、16 進数、8 進数、または 2 進数で表すことができ、先頭にオプションの記号 (- または +) を付けることができます)。
PHP 5.4.0 以降で使用できる整数のバイナリ表現。 8 進数表記を使用するには、数値の前に次の文字を付ける必要があります。
0(ゼロ)。 16 進数の表現を使用するには、数値の前に
0x を付ける必要があります。バイナリ表現を使用するには、数値の前に 0b
を付ける必要があります。
整数値の語長は定数 PHP_INT_SIZE で表すことができます。PHP 4.4.0 および PHP 5.0.5 以降では、最大値も定数で表すことができます。
PHP_INT_MAX を表します。
指定された数値が整数の範囲を超える場合、浮動小数点として解釈されます。同様に、演算結果が整数の範囲を超える場合も浮動小数点数が返されます。
PHP には整数の除算演算子がありません。
1/2 は float 0.5 を生成します。値は、小数部分を破棄して整数にキャストすることも、より適切に丸めるためにround()関数を使用することもできます。
整数に変換
値を明示的に整数に変換するには、(int) または (integer) キャストを使用します。
【float】
浮動小数点数の精度には限界があります。 0.1 や 0.7 など、10 進数で正確に表現できる有理数は、仮数の数に関係なく、内部で使用されるバイナリでは正確に表現できないため、精度を少し損なうことなくバイナリ形式に変換することはできません。 。これは、混乱を招く結果につながる可能性があります。たとえば、 floor((0.1+0.7)*10) は、結果の内部表現が 7.99999999999999991118... のようなものであるため、通常、期待される 8 ではなく 7 を返します。 したがって、浮動小数点数の結果が最後の桁まで正確であるとは決して信じないでください。また、2 つの浮動小数点数が等しいかどうかを比較することも決してしないでください。本当に高い精度が必要な場合は、任意精度の数学関数または gmp 関数を使用する必要があります。
【NULL】 特別な NULL 値は、変数に値がないことを示します。 NULL 型で使用できる値は NULL のみです。
次の場合、変数は NULL とみなされます:
に NULL の値が割り当てられている場合。 にはまだ値が割り当てられていません。
は
設定されていません()。
【型変換の判定】
使用できるキャストは以下の通りです:
? (int), (integer) - 整数に変換します
(bool), (boolean) - ブール型 boolean に変換します
? (float)、(double)、(real) - float に変換します
? (string) - 文字列 string に変換しますか? - 配列配列
に変換しますか?オブジェクト object に変換します
? (未設定) - NULL に変換します (PHP 5)
【変数処理関数】
?boolval — 変数のブール値を取得します
— 文字列表現をダンプします内部 zend 値を出力します
?doubleval — floatval のエイリアス
?empty — 変数が空かどうかを確認します
?floatval — 変数の浮動小数点値を取得します
?定義されたすべての変数で構成される配列を返します
?get_resource_type — リソースのタイプを返します
?gettype — 変数のタイプを取得します
?import_request_variables — GET/POST/Cookie 変数をグローバルにインポートします スコープ内
?intval — 変数の整数値を取得します
?is_array — 変数が配列であるかどうかを確認します
?is_bool — 変数がブール型であるかどうかを確認します
?is_callable — パラメータが正当で呼び出し可能 呼び出し構造体
?is_double — is_float のエイリアス
?is_float — 変数が浮動小数点型であるかどうかを検出する
?is_int — 変数が整数であるかどうかを検出する
?is_integer — is_int のエイリアス
?is_long — is_int のエイリアス
?is_null — 変数が NULL かどうかを検出します
?is_numeric — 変数が数値であるか数値の文字列であるかを検出します
? is_object — 変数がオブジェクトかどうかを検出します
?is_real — is_float のエイリアス
?is_resource — 変数がリソースタイプであるかどうかを確認します
?is_scalar — 変数がスカラーであるかどうかを確認します
?is_string — 変数が文字列であるかどうかを確認します
?isset — 変数が設定されているかどうかを確認します
? print_r — 変数に関する人間が読める形式の情報を出力します。
?serialize — 値の保存可能な表現を生成します
?settype — 変数の型を設定します
?strval — 変数の文字列値を取得します
?unserialize — 保存された表現から PHP を作成します
の値?unset — 指定された変数の設定を解除します
?var_dump — 変数に関する情報を出力します
?var_export — 変数の文字列表現を出力または返します
<?php
// boolean
$bFlag = true;
if($bFlag)
{
echo '变量$bFlag为真'.'<br>';
}
else
{
echo '变量$bFlag为假'.'<br>';
}
// integer
$iVal = 12345678;
echo '十进制的结果'.$iVal.'<br>';
$a1 = 1234; // 十进制数
$a2 = -123; // 负数
$a3 = 0123; // 八进制数 (等于十进制 83)
$a4 = 0x1A; // 十六进制数 (等于十进制 26)
$large_number = 2147483647;
echo var_dump($large_number).'<br>';
var_dump(25/7); // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
// float
$fVal = 3.141592653;
echo '变量$fVal的值是'.$fVal.'<br>';
// null
$str1 = null;
$str2 = 'str';
if(is_null($st1))
{
echo '$str1为null'.'<br>';
}
// 调试某个类型
echo gettype($str2).'<br>';
if(is_string($str2))
{
echo '$str2为string类型'.'<br>';
}
// 销毁对象
unset($str2);
if(is_null($st1))
{
echo '$str2为null'.'<br>';
}
?>
上記では、内容の側面も含めて PHP のデータ型を紹介していますが、PHP チュートリアルに興味のある友人にとって役立つことを願っています。