1. ホーム
  2. php

[解決済み] 文字列をブーリアンに変換する方法 php

2022-03-25 21:25:42

質問

文字列を boolean ?

$string = 'false';

$test_mode_mail = settype($string, 'boolean');

var_dump($test_mode_mail);

if($test_mode_mail) echo 'test mode is on.';

を返します。

となりますが、本来は boolean false .

解決方法は?

文字列は、PHP が "empty"と見なす値を持たない限り、常に真偽値として評価されます (これは、PHP が "empty"と見なす値から取得します)。 のドキュメントを参照してください。 empty ):

  1. "" (空の文字列)を指定します。
  2. "0" (0を文字列にしたもの)

文字列のテキスト値に基づいてブール値を設定する必要がある場合、その値の有無を確認する必要があります。

$test_mode_mail = $string === 'true'? true: false;

EDIT: 上記のコードは、理解を明確にするためのものです。 実際の使用では、以下のコードの方がより適切かもしれません。

$test_mode_mail = ($string === 'true');

を使用するか、あるいは filter_var 関数は、より多くのブーリアン値をカバーすることができます。

filter_var($string, FILTER_VALIDATE_BOOLEAN);

filter_var は、真実の値を含む、あらゆる種類の値をカバーします。 "true" , "1" , "yes""on" . 参照 ここで をご覧ください。