現在の言語: 日本語

戻る

bool型
php型宣言

phpで使用する型宣言のbool型について
bool型は真偽値
true(真)またはfalse(偽)のいずれかの値のみを保持するデータ型です。

[サンプル]

copy
class test1
{
  function judgeBool($value)
  {
    if($value)
    {
      echo "true".PHP_EOL;
    }
    else
    {
      echo "false".PHP_EOL;
    }
  }
}
echo "<pre>";
$cls1 = new test1();
echo "bool test".PHP_EOL;
$bool = true;
$cls1->judgeBool($bool);//true
$bool = false;
$cls1->judgeBool($bool);//false

echo "int test".PHP_EOL;
$int = 0;
$cls1->judgeBool($int);//false
$int = 1;
$cls1->judgeBool($int);//true
$int = 2;
$cls1->judgeBool($int);//true

echo "float test".PHP_EOL;
$float = 0.0;
$cls1->judgeBool($float);//false
$float = 0.1;
$cls1->judgeBool($float);//true
$float = 1.0;
$cls1->judgeBool($float);//true
$float = 0.00;
$cls1->judgeBool($float);//false
$float = 0;
$cls1->judgeBool($float);//false

echo "string test".PHP_EOL;
$str = "";
$cls1->judgeBool($str);//false
$str = " ";//半角SP
$cls1->judgeBool($str);//true
$str = "test";
$cls1->judgeBool($str);//true
echo "array test".PHP_EOL;
$ary = [];
$cls1->judgeBool($ary);//false
$ary[] = 1;
$cls1->judgeBool($ary);//true
echo "null test".PHP_EOL;
$null = null;
$cls1->judgeBool($null);//false
$null = "";
$cls1->judgeBool($null);//false
$null = " ";//半角SP
$cls1->judgeBool($null);//true
$null = "test";
$cls1->judgeBool($null);//true

echo "</pre>";
copy
class test1
{ 
	function judgeBool($value) 
	{ 
		if($value) 
		{ 
			echo "true".PHP_EOL; 
		} 
		else 
		{ 
			echo "false".PHP_EOL; 
		} 
	}
}
echo "<pre>";
$cls1 = new test1();
echo "bool test".PHP_EOL;
$bool = true;
$cls1->judgeBool($bool);//true
$bool = false;
$cls1->judgeBool($bool);//false

echo "int test".PHP_EOL;
$int = 0;
$cls1->judgeBool($int);//false
$int = 1;
$cls1->judgeBool($int);//true
$int = 2;
$cls1->judgeBool($int);//true

echo "float test".PHP_EOL;
$float = 0.0;
$cls1->judgeBool($float);//false
$float = 0.1;
$cls1->judgeBool($float);//true
$float = 1.0;
$cls1->judgeBool($float);//true
$float = 0.00;
$cls1->judgeBool($float);//false
$float = 0;
$cls1->judgeBool($float);//false

echo "string test".PHP_EOL;
$str = "";
$cls1->judgeBool($str);//false
$str = " ";//Half-width SP
$cls1->judgeBool($str);//true
$str = "test";
$cls1->judgeBool($str);//true
echo "array test".PHP_EOL;
$ary = [];
$cls1->judgeBool($ary);//false
$ary[] = 1;
$cls1->judgeBool($ary);//true
echo "null test".PHP_EOL;
$null = null;
$cls1->judgeBool($null);//false
$null = "";
$cls1->judgeBool($null);//false
$null = " ";//Half-width SP
$cls1->judgeBool($null);//true
$null = "test";
$cls1->judgeBool($null);//true

echo "</pre>";

if($value)
trueの結果のケースです。

else
falseの結果のケースです。

bool
falseとtrueになった判定結果が返ります。
int
0はfalse、以外はtrueと判定されます。
float
0.0(0)はfalse、以外はtrueと判定されます。
string
空文字はfalse、以外はtrueと判定されます。
array
要素がないデータはfalse、以外はtrueと判定されます。
null
null自身はfalse、以外はtrueと判定されます。
ただし、空文字など一定の値は上記通りfalseと判定されます。


copy
class test2
{
  function test(string $value)
  {
    if((bool)$value)
    {
      echo "true".PHP_EOL;
    }
    else
    {
      echo "false".PHP_EOL;
    }
  }
}
echo "<pre>";
$cls2 = new test2();
echo "bool cast test".PHP_EOL;
$str = "false";
$cls2->test($str);//true
$str = "true";
$cls2->test($str);//true

echo "int cast test".PHP_EOL;
$bool = true;
echo "(int)\$bool:".(int)$bool.PHP_EOL;//1
$bool = false;
echo "(int)\$bool:".(int)$bool.PHP_EOL;//0
$sum = true + true + false + 0;
echo "sum:$sum".PHP_EOL;//2
$sum = true + true + false;
echo "sum:$sum".PHP_EOL;//2

echo "</pre>";
copy
class test2
{
  function test(string $value)
  {
    if((bool)$value)
    {
      echo "true".PHP_EOL;
    }
    else
    {
      echo "false".PHP_EOL;
    }
  }
}
echo "<pre>";
$cls2 = new test2();
echo "bool cast test".PHP_EOL;
$str = "false";
$cls2->test($str);//true
$str = "true";
$cls2->test($str);//true

echo "int cast test".PHP_EOL;
$bool = true;
echo "(int)\$bool:".(int)$bool.PHP_EOL;//1
$bool = false;
echo "(int)\$bool:".(int)$bool.PHP_EOL;//0
$sum = true + true + false + 0;
echo "sum:$sum".PHP_EOL;//2
$sum = true + true + false;
echo "sum:$sum".PHP_EOL;//2

echo "</pre>";
stringのキャスト
文字列でfalseとしてboolでキャストしても
"false"という文字列は空ではないためtrueになります。
trueも同様です。

intのキャスト
trueをintでキャストすると1を返します。
falseをintでキャストすると0を返します。

trueおよびfalseを使った計算
true + true + false;
true:1
false:0
として判定されるため、
1 + 1 + 0
となり
2が返ります。



戻る

著作権情報
ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。
ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、
または公開したりすることはできません。
当方は、ホームページおよびアプリ等を利用したいかなる理由によっての障害等が発生しても、
その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について
一切の責任を負わないものとします。