PHP Manual
/
変数

PHPのデータ型

23. 08. 2019

PHPで処理されるデータは、すべてある種の型になります。例えば、整数、文字列、ブーリアン(真/偽)など。

基本データ型

基本型は、基本データ型、またはスカラ型とも呼ばれる。

タイプ|名称|説明|||。
int
浮動小数点数 "小さいほど正確 " という規則が適用される浮動小数点数のバリエーションです。内部的にはいわゆる仮数指数として格納されているので、実際にはその間に仮数*(2^指数)という演算を行う2つの数値を格納していることになり、実に広大な範囲の数値を格納することが可能です。これは、大きな数値の場合、必ずしも正確な値を知る必要はないが、できるだけメモリを節約したいという原則を利用したものである。float` 型の数値は正確に保存する必要はなく、お金の計算には使用しないでください。
string|文字列|引用符またはアポストロフィで区切られた文字の列を含む。最大長は、オペレーティング・メモリの容量によってのみ制限されます。文字列は、任意のエンコーディングで保存することができ、絵文字やバイナリデータを含むことができます。
ブール値| (boolean) ブール代数の値で、true または false のみを含むことができます。
空の値 null は、何かが存在しないことを表現したい場合に有効です。例えば、記事にはカテゴリーがありません。時々、null を NULL (0) や空文字列 ('') に誤って代入してしまうことがあるが、これは非存在を表現するための良い解決策ではない。

警告: null 型はスカラではありません。

ゼロ(0)vs.ヌル

多くの開発者は、開発を始める際に 0 (ゼロ) と null (存在しない値) の違いを理解するのに苦労しています。

この区別は、次のようなイメージで非常にうまく、かつユーモラスに説明することができます。

0 vs. nullのように、0とnullを比較します。

マニュアルリパック

一部のタイプは相互変換が可能です。対象データ型は丸括弧で指定し、値をリストアップする際など、アプリケーションの任意の場所で指定することができる。

例えば、こんな感じです。

$pi = 3.14;
echo $pi; // 3.14と表示される
echo (int) $pi; // 3を表示します。

ダイナミックリフィル

次の2つの変数を考える。

$x = 10;
$y = '10';

変数 $x$y の内容の違いは何ですか?

変数 $x は数値、$y は文字列("1" と "0" を含む)なので、変数をメモリに格納するだけで、値に影響を与える操作を行わないとすると、以下のようになります。例えば、以下の2つのエントリーは同じ結果を返します。

echo $x + 5; // 15を表示します。
echo $y + 5; // 15を表示します。

2番目のケースは、いわゆる動的上書きと呼ばれるもので、変数がそのデータ型を変換して、その変数に対して演算を行うことができるようにするものである。この動作は常に信頼できるものではなく、むしろ初心者の下手なスクリプトを修正するための矯正的な動作である。可能であれば、常に数値を格納するデータ型で数値を書くと、精度が上がり、将来的に利用しやすくなります。

注意: 完全に任意にデータ型を変換することはできないので、注意が必要です。あるデータ型を他の(互換性のない)データ型に上書きした場合、変換が全く行われないか、元の内容が破損するか、完全に破壊されて別のデータ型に置き換えられる可能性があります。例えば、文字列を整数に書き換えた場合(そして、数値ではない何らかのテキストが変数に格納された場合)、変数には数値の代わりに1という値が格納されます。

タイプの比較

値を比較する場合、異なるデータ型を考慮する必要があります。

一般に、==演算子は(型に関係なく)2つの値の一般的な比較に使われ、===は値とデータ型の両方の比較に使われます。

例えば、こんな感じです。

$a = '';
$b = null;
if ($a == $b) {
// TRUEと評価されるのは
// データ型が変換される。
}
if ($a === $b) {
// より厳密な検証を行う。
// というのは、異なる
// コンテンツとデータ型が異なるため
// このコードは決して実行されません。
}

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
5.
Status:
All systems normal.
2024