LoginSignup
2
4

More than 3 years have passed since last update.

PHP trueになるもの・falseになるもの確認 falseを入れた配列はどっちに?

Last updated at Posted at 2019-07-26

はじめに

PHPにどのような型があるのかは、
こちらの記事でご確認ください。
PHPの型一覧

PHPでは暗黙的な型変換が行われるため、
bool以外の型の変数でも、
必要な状況では自動的にboolに変換されます。

bool型以外の変数で、
どのような値はtrueになりどのような値はfalseになるのか確認します。

falseになるもの

わかりやすいのでまずはfalseになるものから。

  • stringの空文字列
  • stringの0
  • intの0
  • floatの0.0
  • 要素が0個のarray
  • null

がfalseとなります。

実際に検証。

$stringEmpty = '';
var_dump((bool)$stringEmpty);
// bool(false)

$stringZero = '0';
var_dump((bool)$stringZero);
// bool(false)

$int0 = 0;
var_dump((bool)$int0);
// bool(false)

$float0 = 0.0;
var_dump((bool)$float0);
// bool(false)

$arrayEmpty = [];
var_dump((bool)$arrayEmpty);
// bool(false)

$null = null;
var_dump((bool)$null);
// bool(false)

すべてfalseになりました。

trueになるもの

上記のfalseになるもの以外はすべてtrueになります。

いくつか検証してみます。

まずは普通の例。


$string = 'aaa';
var_dump((bool)$string);
// bool(true)

$int = 123;
var_dump((bool)$int);
// bool(true)

$float = 0.1;
var_dump((bool)$float);
// bool(true)

$array = ['a'];
var_dump((bool)$array);
// bool(true)

これは普通に全部trueです。
 
 
 
次はちょっと特殊な例で、
何かfalseになるものがないかいろいろ試してみます。

// 文字列のfalse
$stringFalse = 'false';
var_dump((bool)$stringFalse);
// bool(true)


// 文字列の半角スペース
$stringSpace = ' ';
var_dump((bool)$stringSpace);
// bool(true)


//マイナスのint
$intNegative = -1;
var_dump((bool)$intNegative);
// bool(true)


//falseを入れた配列
$arrayFalse = [false];
var_dump((bool)$arrayFalse);
// bool(true)

//intの0を入れた配列
$arrayZero = [0];
var_dump((bool)$arrayZero);
// bool(true)


//インスタンス
class MyClass {};
$object = new MyClass();
var_dump((bool)$object);
// bool(true)


//クロージャ
$closure = function(){};
var_dump((bool)$closure);
// bool(true)


//リソース
$resource = fopen('index.php', 'r');
var_dump((bool)$resource);
// bool(true)

全部trueになりました。

まとめ

まずは、下記のfalseになるもの一覧を把握し、
それ以外はすべてtrueになるということを把握しておく。

  • stringの空文字列
  • stringの0
  • intの0
  • floatの0.0
  • 要素が0個のarray
  • null

 
そのうえで、
ちょっと混乱しそうな
上で書いた特殊な例のようなものも把握しておくとよさそうです。

参考

独習PHP
PHP: 論理型 (boolean) - Manual

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4