現在の位置: ホーム> 最新記事一覧> is_boolとgetTypeの違い:getTypeを使用してブール値を判断できないのはなぜですか?

is_boolとgetTypeの違い:getTypeを使用してブール値を判断できないのはなぜですか?

gitbox 2025-08-26

PHPでは、 is_boolgetTypeは、変数のタイプをチェックする2つの一般的に使用される関数です。それらはすべてタイプチェックを処理するために使用できますが、特にブール値を判断する場合、行動と目的には大きな違いがあります。この記事では、 IS_BoolgetTypeの違いを詳細に調べ、 getTypeだけに頼ることができない理由を説明します。

1。IS_BOOL関数の紹介

IS_BOOLは、変数がブール値であるかどうかを判断するために特別に使用される関数です。ブール値には、falseの2つの値があります。この関数の返品値はブール値であり、変数のタイプがブール値であり、それ以外の場合は偽りの場合は真です

例:

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-number">1</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>); </span><span><span class="hljs-comment">// 出力:1 (true)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>); </span><span><span class="hljs-comment">// 出力:ヌル (false)</span></span><span>
</span></span>

この例では、 IS_BOOL($ VAR1)は、 $ var1の値がブールのであるため、 trueを返します。 is_bool($ var2)はfalseを返します。たとえ$ var2の値が1であっても、ブール値ではありません。

2。getType関数の紹介

getTypeは、変数のタイプを取得できる関数です。変数のタイプを表す文字列を返します。 IS_BOOLとは異なり、 getTypeは、ブール型だけでなく、すべてのタイプの文字列の説明を返します。

例:

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-number">1</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>); </span><span><span class="hljs-comment">// 出力:boolean</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>); </span><span><span class="hljs-comment">// 出力:integer</span></span><span>
</span></span>

上記の例では、 getType($ var1)ブール値を返し、変数$ var1がブール値であることを示します。 getType($ var2)は整数を返し、変数$ var2が整数であることを示します。

3。IS_BOOLgetTypeの違い

これらの2つの関数は、変数のタイプを確認するために使用されているようですが、実際に使用すると、いくつかの重要な違いがあります。

  • 献身IS_BOOLは、変数がブール値であるかどうかを判断するためにのみ使用され、 getTypeはブール整数文字列などを含むすべてのPHPタイプを返すことができる一般型検出機能です。

  • 戻り値is_boolはブール値をtrueまたはfalseで返しますが、 getTypeは変数のタイプを説明する文字列を返します。

  • タイプマッチングIS_BOOLは、変数が厳密にブールのまたはFALSEである場合にのみTRUEを返しますが、 GetTypeはTrueFalseを区別することなくブール式文字列を返します。

4. getTypeを使用してブール値を直接判断できないのはなぜですか?

getTypeはブール値を直接返すのではなく、変数のタイプ名文字列(ブール値など)を返します。 getTypeを使用してブール値を判断すると、偽の両方をブール値として分類し、それらを区別することはできません。これは、 getTypeによってブール値が真である偽りであるかを判断できないことを意味し、変数がブール型であるかどうかを判断することができます。

例:

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = </span><span><span class="hljs-number">1</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>); </span><span><span class="hljs-comment">// 出力:boolean</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>); </span><span><span class="hljs-comment">// 出力:boolean</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span>); </span><span><span class="hljs-comment">// 出力:integer</span></span><span>
</span></span>

$ var1$ var2はどちらもブール値ですが、 getTypeは単にブール値を返すだけで、それらがfalsであるかどうかを区別することはできません。 TrueFalseを明確に区別したい場合は、より具体的な判断方法を使用する必要があります。

5。IS_BOOLとgetTypeを使用する正しい方法

変数がブール値であるかどうかを正確に判断するために、最良の方法はis_boolを使用することです。ブール値の特定のコンテンツを確認する必要がある場合(つまり、それがかを決定するかどうかを決定します)、変数を直接比較できます。

例:

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>;

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"var1 それはブール値です\n"</span></span><span>;
}

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$var1</span></span><span> === </span><span><span class="hljs-literal">true</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"var1 はい true\n"</span></span><span>;
}

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$var2</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"var2 はい false\n"</span></span><span>;
}
</span></span>

この例では、最初にis_boolを使用して、変数がブール値であるかどうかを判断します。次に、厳密な比較演算子===を使用して、それが偽かを判断します。

6。結論

is_boolgetTypeはどちらも便利なツールですが、さまざまなシナリオに適しています。 IS_Boolは、変数がブール値であるかどうかを判断するために特異的に使用され、 GetTypeはより一般的なタイプ情報を取得するために使用されます。ブール値を判断する場合、値をtruefalseを配布できないため、 getTypeを直接使用することは不正確です。したがって、ブールタイプを判断する必要がある場合は、 iS_boolを使用して直接比較して特定の値を決定することをお勧めします。