開発者ドキュメント

PHPのデータ型を理解する

序章

PHPでは、すべてのプログラミング言語と同様に、データ型を使用して特定の種類のデータを分類します。 使用する特定のデータ型によって、それに割り当てることができる値とそれに実行できること(実行できる操作を含む)が決まるため、これは重要です。

このチュートリアルでは、PHPにネイティブな重要なデータ型について説明します。 これはデータ型の徹底的な調査ではありませんが、PHPで使用できるオプションを理解するのに役立ちます。

データ型について考える1つの方法は、現実の世界で使用するさまざまな種類のデータを検討することです。 2つの異なるタイプは数字と単語です。 これらの2つのデータ型は異なる方法で機能します。 追加します 3 + 4 取得するため 7、単語を組み合わせますが starfish 取得するため starfish.

数字や単語など、さまざまなデータ型を相互に評価し始めると、物事はあまり意味をなさなくなり始めます。 たとえば、次の方程式には明確な答えがありません。

'sky' + 8

コンピューターの場合、単語や数字など、各データ型はまったく異なると考えることができるため、値を割り当てるためにそれらをどのように使用するか、および操作を通じてそれらをどのように操作するかについて注意する必要があります。

データ型の操作

PHPは緩く型付けされた言語です。 これは、デフォルトで、値が予想されるデータ型と一致しない場合、PHPは、可能な場合、予想される型と一致するように間違ったデータ型の値を変更しようとすることを意味します。 これは型ジャグリングと呼ばれます。 たとえば、 string 代わりに integer の値で 2 着信値を期待値に変更します string の値で入力します "2".

ファイルごとに厳密モードを有効にすることが可能であり、推奨されています。 これにより、厳密なデータ型に準拠していない可能性のある追加のコードパッケージを使用できるようにしながら、制御するコードでデータ型を適用できます。 厳密なタイプはファイルの先頭で宣言されます:

<?php
declare(strict_types=1);
...

厳密モードでは、型宣言に正確に対応する値のみが受け入れられます。 それ以外の場合は TypeError スローされます。 この規則の唯一の例外は、 int 値は合格します float タイプ宣言。

数字

PHPに入力した数値は、数値として解釈されます。 入力するデータ型の種類を宣言する必要はありません。 PHPは、小数点なしで記述された数値を integer (138など)と見なし、小数点付きで記述された数値を float (138.0など)と見なします。

整数

数学と同様に、コンピュータープログラミングの整数は、正、負、または0(…、-1、0、1、…)の整数です。 整数は、 int. 他のプログラミング言語と同様に、4桁以上の数字でコンマを使用しないでください。したがって、プログラムで1,000の数字を表すには、次のように記述します。 1000.

次のように整数を出力できます。

echo -25;

どちらが出力されますか:

Output
-25

変数を宣言することもできます。この場合、これは、次のように、使用または操作している数値のシンボルです。

$my_int = -25;
echo $my_int;

どちらが出力されますか:

Output
-25

PHPでも整数を使って数学を行うことができます。

$int_ans = 116 - 68;
echo $int_ans;

どちらが出力されますか:

Output
48

整数はPHPプログラム内でさまざまな方法で使用できます。言語についてさらに学習し続けると、整数を操作してこのデータ型について理解する機会がたくさんあります。

浮動小数点数

浮動小数点数またはfloatは実数であり、有理数または無理数のいずれかになります。 このため、浮動小数点数は、次のような小数部分を含むことができる数になる可能性があります。 9.0 また -116.42. を考えるために float PHPプログラムでは、小数点を含む数値です。

整数で行ったように、次のように浮動小数点数を出力できます。

echo 17.3;

どちらが出力されますか:

Output
17.3

次のように、floatを表す変数を宣言することもできます。

$my_flt = 17.3;
echo $my_flt;

どちらが出力されますか:

Output
17.3

また、整数の場合と同様に、PHPでもfloatを使用して数学を行うことができます。

$flt_ans = 564.0 + 365.24;
echo $flt_ans;

どちらが出力されますか:

Output
929.24

整数と浮動小数点数の場合、次の点に注意することが重要です。 3 等しくない 3.0、 なぜなら 3 整数を参照します 3.0 フロートを指します。 これにより、プログラムの機能が変わる場合と変わらない場合があります。

数字は、計算、アイテムやお金のカウント、時間の経過を処理するときに役立ちます。

文字列

文字列は、文字、数字、または記号で構成される1つ以上の文字のシーケンスです。 このシーケンスは、一重引用符で囲まれています '' または二重引用符 "":

echo 'This is a 47 character string in single quotes.'
echo "This is a 47 character string in double quotes."

どちらの行も同じ方法で値を出力します。

Output
This is a 47 character string in single quotes. This is a 47 character string in double quotes.

一重引用符または二重引用符のいずれかを使用することを選択できますが、どちらを選択しても、プログラム内で一貫している必要があります。

プログラム「Hello、World!」 Hello、World!というフレーズを構成する文字として、文字列をコンピュータープログラミングで使用する方法を示します。 文字列です:

echo "Hello, World!";

他のデータ型と同様に、文字列を変数に格納して結果を出力できます。

$hw = "Hello, World!"
echo $hw;

いずれにせよ、出力は同じです。

Output
Hello, World!

数値と同様に、プログラム内の文字列を操作して目的の結果を達成するために、文字列に対して実行できる操作は多数あります。 文字列は、ユーザーに情報を伝達するため、およびユーザーがプログラムに情報を伝達するために重要です。

ブール値

ブール値、または bool、データ型は2つの値のいずれかになります。 true また false. ブール値は、数学の論理ブランチに関連付けられている真理値を表すために使用されます。

ブール値を宣言するときは、引用符を使用しません。 引用符で囲まれたものはすべて文字列と見なされます。 PHPは、ブール値を宣言するときに大文字と小文字を区別しません。 True, TRUE, true、 と tRuE すべて同じように評価します。 PHP-FIG が発表したスタイルガイドに従う場合、値はすべて小文字である必要があります true また false.

数学の多くの演算は、TrueまたはFalseのいずれかに評価される答えを提供します。

他のデータ型と同様に、ブール値を変数に格納できます。 数字や文字列とは異なり、 echo ブール値のため、値の出力には使用できません true 値は文字列に変換されます "1"、ブール値 false に変換されます "" (空の文字列)。 これにより、「型ジャグリング」により、ブール値と文字列値の間で変数を前後に変換できます。 ブール値を出力するには、いくつかのオプションがあります。 変数の値とともに型を出力するには、次を使用します。 var_dump. 変数の値の文字列表現を出力するには、次を使用します。 var_export:

$my_bool = 4 > 3;
echo $my_bool;
var_dump($my_bool);
var_export($my_bool);

4は3より大きいため、次の出力を受け取ります。

Output
1 bool(true) true

The echo 行は変換します true の文字列にブール値 1. The var_dump の変数タイプを出力します bool の値と一緒に true. The var_export 次の値の文字列表現を出力します true.

PHPでより多くのプログラムを作成するにつれて、ブール値がどのように機能するか、およびさまざまな関数と操作がどちらに評価されるかについて理解するようになります。 True また False プログラムのコースを変更することができます。

ヌル

NULLタイプは値がありません。 変数用のスペースを予約します。 これにより、PHPは変数について知ることができますが、それでも未設定と見なされます。 NULLタイプで可能な値は、大文字と小文字を区別しないの値のみです。 null. PHPが宣言されていない変数にアクセスしようとすると、警告がスローされます。

echo $name;

変数が設定されていないことを警告しますが、コードは処理を続行します。

Output
PHP Warning: Undefined variable $name

この警告を防ぐ一般的な方法の1つは、その変数がを使用して設定されていることを確認することです。 isset 関数:

if (isset($name)) {
    echo $name;
}

これによりエコーが完全にスキップされ、警告はスローされません。 このタイプのエラーを防ぐ2つ目の方法は、空の文字列などの変数にプレースホルダー値を設定することです。

$name = '';
echo "Hello ".$name;

これで表示されます Hello の値が $name 空の文字列です:

Output
Hello

これらのソリューションは両方とも有効で有用です。 ただし、 $name 空の文字列に、その値が実際に設定されます。

$name = '';
if (isset($name)) {
    echo "Hello ".$name;
}

これも表示されます Hello の値が $name 空の文字列に設定されます:

Output
Hello

ほとんどの課題と同様に、複数の解決策があります。 1つの解決策は、変数をに設定することです。 null 価値。 これにより、その変数用のスペースが保持され、PHPがエラーをスローするのを防ぎますが、それでも変数は「設定されていない」と見なされます。

$name = null;
echo $name;
if (isset($name)) {
    echo "Hello ".$name;
}

変数は「宣言」されているため、エラーが発生することはありません。 echo 変数へのアクセスを試みます。 また、値がないため、何も表示されません。 条件もfalseと評価されます。 $name 変数は設定されているとは見なされません。

使用できます var_dump PHPがNULL変数をどのように評価するかを確認するには:

$name = null;
var_dump($name);

これは、タイプがNULLであることを示しています。

Output
NULL

他の変数タイプほど一般的ではありませんが、アクションを実行するが戻り値を持たない関数の戻りタイプとしてNULLがよく使用されます。

配列

PHPの配列は、実際には順序付けられたマップです。 map は、値をキーに関連付ける、つまり「マップ」するデータ型です。 このデータ型にはさまざまな用途があります。 それはとして扱うことができます array, list, hash table, dictionary, collection、 もっと。 さらに、PHPの配列値は他の配列にすることもできるため、多次元配列が可能です。

インデックス付き配列

最も単純な形式では、配列には数値インデックスまたは key. キーを指定しない場合、PHPは自動的に次の数字キーを生成します。 デフォルトでは、配列キーは0インデックスです。つまり、最初のキーは1ではなく0です。 配列内にある各要素または値は、itemと呼ばれることもあります。

配列は、2つの方法のいずれかで定義できます。 1つ目は、 array() アイテムのコンマ区切りリストを使用する言語構成。 整数の配列は次のように定義されます。

array(-3, -2, -1, 0, 1, 2, 3)

配列を定義する2番目のより一般的な方法は、角かっこを使用した短い配列構文を使用することです。 []. フロートの配列は次のように定義されます。

[3.14, 9.23, 111.11, 312.12, 1.05]

次のように、文字列の配列を定義し、変数に配列を割り当てることもできます。

$sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp'];

繰り返しになりますが、使用できません echo 配列全体を出力しますが、 var_export また var_dump:

var_export($sea_creatures);
var_dump($sea_creatures);

出力は、配列が数値を使用していることを示しています keys:

Output
array
( 0 => 'shark', 1 => 'cuttlefish', 2 => 'squid', 3 => 'mantis shrimp', ) array(4) { [0]=> string(5) "shark" [1]=> string(10) "cuttlefish" [2]=> string(5) "squid" [3]=> string(13) "mantis shrimp" }

配列は0インデックスであるため、 var_dump は、間に数値キーがあるインデックス付き配列を示しています 03. 各数値 key 文字列に対応 value. 最初の要素には次のキーがあります 0 との値 shark. The var_dump 関数は、配列に関する詳細を提供します。配列には4つの項目があり、最初の項目の値は5の長さの文字列です。

インデックス付き配列のテンキーは、値を設定するときに指定できます。 ただし、名前付きキーを使用する場合は、キーがより一般的に指定されます。

連想配列

連想配列は、名前付きキーを持つ配列です。 これらは通常、IDに含まれる情報など、関連するデータを保持するために使用されます。 連想配列は次のようになります。

['name' => 'Sammy', 'animal' => 'shark', 'color' => 'blue', 'location' => 'ocean']

二重矢印演算子に注意してください => 文字列を区切るために使用されます。 の左側の言葉 => キーです。 キーは整数または文字列のいずれかです。 前の配列のキーは次のとおりです。 'name', 'animal', 'color', 'location'.

の右側の言葉 => 値です。 値は、別の配列を含む任意のデータ型で構成できます。 前の配列の値は次のとおりです。 'Sammy', 'shark', 'blue', 'ocean'.

インデックス付き配列と同様に、連想配列を変数内に格納し、詳細を出力しましょう。

$sammy = ['name' => 'Sammy', 'animal' => 'shark', 'color' => 'blue', 'location' => 'ocean'];
var_dump($sammy);

結果は、この配列が4つの要素を持つことを示しています。 各キーの文字列が指定されていますが、タイプを指定するのは値のみです string 文字数:

Output
array
(4) { ["name"]=> string(5) "Sammy" ["animal"]=> string(5) "shark" ["color"]=> string(4) "blue" ["location"]=> string(5) "ocean" }

連想配列を使用すると、単一の要素にさらに正確にアクセスできます。 サミーの色を分離したい場合は、配列変数の後にキーの名前を含む角かっこを追加することで分離できます。

echo $sammy['color'];

結果の出力:

Output
blue

配列はデータを格納するためのキーと値のマッピングを提供するため、PHPプログラムの重要な要素になる可能性があります。

定数

定数は実際には個別のデータ型ではありませんが、他のデータ型とは動作が異なります。 名前が示すように、定数は一度宣言された変数であり、その後はアプリケーション全体で変更されません。 定数の名前は常に大文字で、ドル記号で始まらないようにする必要があります。 定数は、次のいずれかを使用して宣言できます。 define 関数または const キーワード:

define('MIN_VALUE', 1);
const MAX_VALUE = 10;

The define 関数は2つのパラメーターを取ります:最初は string 定数の名前を含み、2番目は割り当てる値です。 これは、前に説明したデータ型の値のいずれかである可能性があります。 The const キーワードを使用すると、単一の等号を使用して、他のデータ型と同じ方法で定数に値を割り当てることができます。 定数は、二重引用符で囲まれた文字列内で解釈されないことを除いて、他の変数と同じ方法でアプリケーション内で使用できます。

echo "The value must be between MIN_VALUE and MAX_VALUE";
echo "The value must be between ".MIN_VALUE." and ".MAX_VALUE;

定数が解釈されないため、これらの行の出力は異なります。

Output
The value must be between MIN_VALUE and MAX_VALUE The value must be between 1 and 10

結論

この時点で、PHPで使用できる主要なデータ型のいくつかをよりよく理解する必要があります。 これらの各データ型は、PHP言語でプログラミングプロジェクトを開発するときに重要になります。

モバイルバージョンを終了