PHPには合計8のデータ型があります:
タイプ名
|
型表現
|
価値
|
ブール |
ブール値 |
真、偽 |
整数 |
形成外科 |
-2147483647-2147483648 |
文字列 |
文字列型 |
文字列の長さはマシンのメモリに依存します |
フロート |
浮動小数点 |
最大値1.8e308 |
オブジェクト |
オブジェクト |
new $obj=new person(); によってインスタンス化されます |
配列 |
配列型 |
$arr=array(1,2,3,4,5,6);//一次元配列 |
リソース |
|
|
ヌル |
null 値 |
ヌル |
ブール値 bool:
他の型の場合は、強制変換に (bool) または (boolean) を使用できます。例: (bool) 1=true;
次の状況では、強制変換中にデフォルトで false になります:
変換
|
結果
|
ブール値 false var_dump((bool) false) |
ブール(偽) |
整数型 0 var_dump((bool) 0); |
ブール(偽) |
浮動小数点型 0.0 var_dump((bool) 0.0); |
ブール(偽) |
文字列 ‘0’ var_dump((bool) ‘0’); |
ブール(偽) |
空の配列 $arr=array(); var_dump((bool) $arr);
| ブール(偽)
|
メンバー変数を含まない空のオブジェクトは PHP4 でのみ使用され、PHP5 でも当てはまります
| ブール(偽)
|
NULL または値が割り当てられていない変数 var_dump((bool) NULL)
| ブール(偽)
|
タグのない XML ドキュメントから生成された SimpleXML オブジェクト
| ブール(偽)
|
文字列「0.0」の変換結果はbool(true)です
注: -1 およびその他のゼロ以外の値 (正または負に関係なく) は true です
整数整数:
整数型の範囲は-2147483647~2147483647です。この値を超える場合は自動的にfloat型に変換されます
。
echo PHP_INT_SZIE を使用して、マシンに依存する整数の語長を出力できます。 echo PHP_INT_MAX は整数の最大値を出力します
PHP には整数の除算演算はありません。1/2 を実行すると、0.5 の float が生成されます。整数の除算効果を実現したい場合は、(int)(1/2)=0 を使用するか、round( を使用します。 25/7)=4
整数型 (int) または (integer) bool 型への強制変換 true は 1 に変換され、false は 0 に変換されます
浮動小数点型 float:
値の範囲 最大値: 1.8e308 最小値がわかりません。 専門家に知らせてください
浮動小数点数の語長もマシンに関係するようですが、PHP_FLOAT_SIZEがないようなので、浮動小数点数の長さを取得する方法を教えてください
。
文字列型文字列:
文字列を定義する 4 つの方法:
1. 一重引用符
2.二重引用符
3.heredoc構文構造
4.nowdoc構文構造(PHP5.3.0以降)
一重引用符
一重引用符は最も基本的な文字列を定義し、文字列に一重引用符が含まれている場合は、文字列として処理されます
。
二重引用符
二重引用符で定義された文字列は、いくつかの特殊文字 (n、b) と変数を解析します
変数を文字列に変換する代わりに、変数を二重引用符で囲むことができます:
$num=10;
$str = "$num"; //$str は文字列型 10
ヒアドキュメントの構文構造
<<<識別子
文字列自体
識別子
最後の識別子は行の先頭にある必要があり、識別子の定義形式も PHP で定義されたルールに従う必要があります。数字、文字、アンダースコアのみを含めることができ、数字やアンダースコアで始めることはできません
終了識別子の行には他の文字を使用できません。識別子の後には、タブやスペースを追加できません。そうしないと、PHP は識別子を解析できなくなります。ファイルの終わりまでに識別子が見つからない場合、エラーが生成されます
ヒアドキュメントは二重引用符のない二重引用符です。つまり、エスケープせずに二重引用符を含めることができ、特殊文字と変数を解析できます
nowdoc 構文構造
<<<「識別子」
文字列自体
識別子 www.2cto.com
nowdoc の開始識別子は一重引用符で囲む必要があり、終了識別子とその他のルールはヒアドキュメントと同じです
nowdoc は一重引用符なしです。nowdoc に含まれる文字列はそのまま出力され、それに含まれる特殊文字や変数は解析されません
二重引用符に配列変数に複数の状況が含まれている場合
//まず次の配列を定義します
[php]
1. $arr=array(
2. 'one'=>array(
3. '名前'=>'江通'、
4. 「性別」=>「男性」
5.)、
6. '2'=>'zhaohaitao'、
7. '3'=>'ファンチャンファ'
8.);
上記の配列の最初の要素は 2 次元であり、最後の 2 つの要素は 1 次元です。1 つの次元にアクセスする場合、いくつかの方法があります。
[php]
1. echo "$arr[two]"//キーには一重引用符がありません
2. echo "$arr['two']"//key に一重引用符が含まれているため、エラーが発生します。これを echo "{$arr['two']}"; に変更すると、結果が正しく出力されます。
3. echo "{$arr[two]}"//二重中括弧がありますが、キーに一重引用符がありません。この場合、PHP はまず定数バナナを探し、あればそれを置き換えます。 2 つの定数がない場合は、エラーが発生します。
1 次元配列にアクセスする場合、キーも引用符も追加されないことがわかります (3 番目の状況を考慮すると)。追加する場合は、{} で囲むことはできません。 。
多次元配列テスト
[php]
1. echo "$arr[one][name]"; //出力結果は Array[name] であり、1 つの次元のみを解析することがわかります。
2. echo "{$arr['one']['name']}";//出力結果は jiangtong です
多次元配列にアクセスする場合は中括弧を使用する必要があり、キーは二重引用符で囲む必要があります
配列型
文字列型で述べたように、キー引用符を追加せずに中括弧で囲まれていれば、PHP はまず key という名前の定数があるかどうかを検索し、key という名前の定数が存在する場合はそれを置き換えます。そうしないと、定数が見つからないという警告が生成され、通常の文字列として扱われるため、常に一重引用符を追加することをお勧めします
(array)type または array(type) を使用して配列に変換しますが、値が 1 つだけの値を配列に変換すると、要素 1 つの配列が得られ、添え字は 0 になります。 NULL を配列に変換すると、次のようになります。空の配列を取得します
PHP5.0 以降では、これを実現するために参照を使用できます。
[php]
1. $arr=array('a','b','c','d','e' );
2. foreach($arr as &$value)
3. {
4. $value=strtoupper($value);
5. $value をエコーします。
6. }//出力結果ABCDE
オブジェクトオブジェクトタイプ
オブジェクトをインスタンス化するには、new を使用して person クラスを追加します。これは次の方法で実行できます
。
[php]
1. $objperson=新しい人();
強制変換 (オブジェクト): オブジェクトがオブジェクトに変換される場合、値が NULL の場合、stdclass のオブジェクトはインスタンス化されます。配列はオブジェクトに変換されると、配列のキーがオブジェクトの属性として使用され、値が属性値になり、他のタイプの値の場合は、scalar という名前のメンバー変数に値が含まれます
[php]
1. $arr=array('one'=>a','two'=>b' );
2. $obj=(オブジェクト)$arr;
3. echo $obj->one //出力結果は次のとおりです
注: これはキーの配列です。文字キーの配列がない場合は、アクセス方法がわかりません。ご存知の方がいらっしゃいましたら、教えていただければ幸いです。
他の値については
[php]
1. $obj1=(オブジェクト)'江'
2. echo $obj1->scalar;//結果を出力します jiang
NULL空型
Null は大文字と小文字を区別しません。NULL 型には値が 1 つだけあり、次の 3 つの状況では変数が NULL とみなされます。
1.NULLに割り当てられます
2. まだ割り当てられていません
3. unset();
jt521xlgさんのコラムより抜粋
http://www.bkjia.com/PHPjc/478264.html
www.bkjia.com
本当
http://www.bkjia.com/PHPjc/478264.html
技術記事
PHP には合計 8 つのデータ型があります: 型名 型は値を表します bool boolean true、false integer integer -2147483647-2147483648 string string 文字列の長さはマシンによって異なります...