ホームページ >バックエンド開発 >PHPチュートリアル >PHP 学習ガイド - 第 6 章
PHP の型
この章のキーポイント
◆ PHP の 8 つの型を理解します...ブール型、
◆ NULL、文字列、配列、オブジェクト、リソース
◆ さまざまな型の作成、読み取り、出力の表示、操作その他のオブジェクト
ある型から別の型に変換する
すべてのプログラミング言語には、プログラム内で使用できる値の型を指定するための型システムがあります。これらのさまざまな型は、コンピューター メモリ内のさまざまな表現レベルに対応することが多く、多くの場合、プログラマはビット表現を考慮する必要がありません (またはビット表現を処理する十分な能力を持っていません)。 PHP の型システムはシンプル、合理的、柔軟であり、プログラマを低レベルの詳細から分離します。
この章では、PHPの基本的な型(integer、double、Boolean、NULL、string、array、object、resource)の読み方、出力・表示方法、変数への代入方法、そして変換する方法とそれを組み合わせる方法。この章は入門書でもあり参考資料でもあり、プログラミングに慣れていない人は読み飛ばしても問題ありません。将来、問題が発生したときに、最初は重要ではないと思われる詳細を遡って探すことはできません。
第一原則: リラックスしてください
PHP では、数値や型を指定する必要がなく、多くの種類の変換を処理できるため、変数や値を簡単に入力できます。
変数の型を最初に宣言する必要はありません
前の章で述べたように、変数の型を事前に宣言する必要はなく、プログラマは演算子を直接使用して値を指定することができ、PHP 自体が次の例に示すように、値の型を判断する必要があります。
$first_number=“まったく数値ではありません”;
自動型変換
必要に応じて型変換を実行します。現在のほとんどのプログラミング言語と同様に、PHP は、混合数値型の計算を実行する場合に非常に優れたパフォーマンスを発揮します。たとえば、演算式
$pi=3+0.14159
の結果は倍精度浮動小数点数になります。加算を実行すると、整数「3」が秘密裏に浮動小数点数に変換されます。
コンテキストに基づいて型を構成する
PHP は、自動型変換を実行する際にほとんどの言語よりもさらに進んでいます。以下の例をご覧ください
$sub=substr(12345,2,2);
Print( " sub は $sub
");
Substr 関数は、文字列を入力値として受け取り、関数の他の 2 つのパラメーターによって決定される文字列の特定の部分文字列を返すように設計されています。部分文字列。この例では、文字列値ではなく、整数 12345 を渡しています。結果はどうなるでしょうか?実際、ブラウザは引き続き出力します
Sub is 34
substr は整数ではなく文字列を取得したいため、PHP は数値 12345 を文字列 "12345" に自動的に変換します。そうすれば、substr は独自の処理を行うことができます。
この自動型変換機能のおかげで、PHP が型でエラーを起こすことは困難ですが、PHP プログラマーは、型の混合使用によって「エラーが発生しないだけでなく、エラーが発生しない」ことを確認する必要があります。正しい結果」。
型概要】
PHPにはBoolean、string、array、object、NULL、resourceの8つの型しかありません。
* integer 小数点のない数値の整数部分 (495 など)。
* double 倍精度浮動小数点数、3.14159 や 49.0 などに似ています。
* Boolean ブール型。TRUE または FALSE (true または not true) の 2 つの値のみが可能です。
* NULL は、値が NULL のみである特別な型です。
* 文字列 文字列は文字のシーケンスであり、「PHP4 は文字列操作をサポートしています」という表現に似ています。
* 配列 配列は、他の名前付きのインデックス付きの値のコレクションです。
* オブジェクト object は、プログラマによって定義されたクラスのインスタンスであり、そのクラス
に固有の他のタイプの値と関数をラップできます。
* tesource は、PHP の外部のリソース (データベース接続など) への参照を保存するために使用される特別な変数です。
Boolean、NULL、および resource は PHP4 によって追加された型であり、PHP3 には適用できないことに注意してください。
もちろん、最初の 5 つの型は基本型で、次の 2 つの型 (配列とオブジェクト) は複合型です。これらの複合型は、任意の型の任意の値を変数のグループに形成するために使用できます。しかし、そうではありません。複合型 (配列とオブジェクト) についてはそれぞれの章で詳しく説明するため、この章では簡単に説明します。最後に、リソース タイプは特別なタイプであり、PHP 設計者は直接処理しませんが、必要に応じて特別な関数を使用してリソースにアクセスしたり、リソースを他の関数に渡したりします。
単純型
PHP の単純型 (integer、double、Boolean、NULL、string) は、プログラミング経験のある人には馴染みがあるはずです (熟練した人を対象としていませんが、それでも詳しく説明したいと思います)。 C プログラマが驚くかもしれない唯一のことは、PHP の型がいかに少ないかということです。
ほとんどのプログラミング言語には、さまざまなサイズの数値型がいくつかあります。数値型が大きいほど、より広い範囲の値を使用できますが、より多くのメモリ領域を消費します。たとえば、C 言語には、short 型 (比較的小さい整数用)、long 型 (潜在的に大きな整数用)、および int 型 (中間型ですが、実際には short または sum long のいずれか) があります。 type) に加えて、精度の異なる浮動小数点型もあり、メモリ使用量と機能の間のトレードオフに悩まされるかもしれませんが、それでも型の選択には意味があります。 PHP 開発者は、C の整数型と浮動小数点型に対応する 2 つの数値型のみを使用することで、この問題を単純化するという素晴らしい仕事をしました。
Integer型
Integerは単純な型であり、正と負の数を含む単純な整数に対応します。次の例に示すように、整数は変数に値を代入したり、計算式で使用したりできます。
$another_int=-12345+12345; //Equal to
Reading format
実際の整数 さまざまな基数、10 進数 (基数 10)、8 進数 (基数 8)、および 16 進数 (基数 16) に応じて 3 つの方法で読み取ることができます。デフォルト値は 10 進数で、先頭の 8 進数の整数は「0」、先頭の 16 進数の形式は「0x」で指定されます。どの形式でも「-」記号を前に付けると、整数を負の数にすることができます。例:
$integer_10 = 1000;
$integer_16 = 0x1000;
Print(" teger_8:$integer_8
") ;
print("integer_16:$integer_16
");
ブラウザの出力は次のとおりです:
integer_10: 1000
integer_8: -512
integer_16: 4096
(読み取り形式は整数のみに影響します)読み取り時にどのように変更されるかというと、$integer_8 に格納されている値は、もともと基数 8 で書かれたことを覚えていません。内部的には、これらの数値がバイナリ形式で表現されるのは自然であり、最終出力は基数 10 の変換です。これはデフォルトで出力され、また int 変数を文字列デフォルトにマージします)。
範囲
整数はどのくらい大きく (またはどのくらい小さく) なるでしょうか? PHP の整数は C の long 型に対応し、その型は使用しているマシン システムの語長に依存するため、この質問に明確に答えるのは困難です。ただし、ほとんどの一般的なシステムでは、最大の整数は「231-1」 (または 2,147,483,647) で、最小 (負の) 整数は「-(231-1)」 (または - 2,147,483,647) です。
私たちが知る限り、完全な式の最大の整数を指定できる PHP 定数は現時点ではありません (C 言語の MAXINT に似ています)。ご質問がある場合は、この文の最後にある補足コンテンツを参照してください。非常に大きな整数を使用する必要がある場合、PHP には任意精度の関数がいくつかあります。第 12 章の「BC」に関するセクションを参照してください。
double 型
double は倍精度浮動小数点数です。例:
$first_double = 123.456;
$seven_double = 2.0;
$even_double は「丸められる」ことに注意してください。 「整数(丸め)」の数値ですが、整数型であるという意味ではありません。整数型と多倍精度型は異なる基本形式で格納されますが、たとえば次の演算式:
$five = $even_double+3; の結果は整数型ではなく多倍精度型の数値になります。ただし、リストされた結果は「5」です。ただし、どのような場合でも、数式内で倍精度浮動小数点数と整数を自由に混在させることができ、処理する型を PHP に選択させることができます。
デフォルトでは、倍数は必要な最小桁数でリストされます。例: プログラムコード:
$many = 2.2888800;
$few = $ many + $many_2;
Print (“$many + $many_2 = $few
”);
はブラウザに次の出力を生成します:
2.28888 + 2.21112 = 4.5
より正確な制御が必要な場合 出力表示結果については、を参照してください。第 10 章の printf 関数
読み取り形式
倍精度浮動小数点数の一般的な形式は「-X.Y」です。「-」はオプションで、負の数値を指定するために使用されます。X と Y は、次の間の数値のシーケンスです。 0-9。 X 部分は省略可能 (数値が -1.0 から 1.0 までの場合)、Y 部分も省略できます (小数点なし)。先頭と末尾のゼロは無視できます。以下は有効な倍精度浮動小数点数の例です:
$small_negative = -.12345
$even_double = 2 .;
さらに、倍数業界の長さは、前述の形式の末尾に文字 e と目的の整数の乗算を追加します。 「2.2x10-3」に相当します。数値の浮動小数点部分は、1.0 ~ 10.0 の範囲に厳密に制限する必要はありません。範囲ルーチン コードの次の行はすべて有効です:
$small_positive=5.6-3;
Ptint(“small_positive is $small_postive
”);
Ptint(“large_positive $large_postive です
”);
$small_negative = -2222e-10;
Ptint(“small_negative は $small_negative
”);
$large_negative=-0.00189e6;
Ptint(“large_negative は $large_negative
”);
彼はここを閲覧していますジェネレーターの出力は次のとおりです:
small_positive は 0.0055
larger_positive は 2.8e+16
sall_negative は -2.222e-07
large_negative は -1890
8 進数および 16 進数の整数と同様に、その後数値を読み取るプロセスが終了すると、読み取り形式は以前の変数とは関係がありません。印刷された値を出力するときに、PHP は最も使用する科学的表記法を独自に決定します。元の読み取り形式に関係なく、極端な数値が可能です。
上記は、PHP 学習ガイドの第 6 章の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。