LoginSignup
0
1

More than 1 year has passed since last update.

PHPには0とfalseを返す標準関数がある

Last updated at Posted at 2022-05-24

はじめに

PHPでは、値の比較をする場合は下記の比較演算子を使うことが多いと思います。
この書き方では正しい処理ができない標準関数があります。

sample.php
$a == true;
test() != false;
!test()

注意点

PHPの関数には、エラーが発生した場合falseを返すケース
処理に該当しない場合に0を返すパターンがあります。
この場合の比較には、===演算子を活用しましょう。

preg_match
(PHP 4, PHP 5, PHP 7, PHP 8)

preg_match() は、pattern が指定した subject にマッチした場合に1を返します。
マッチしなかった場合は 0 を返します。 失敗した場合にfalseを返します

警告
この関数は論理値 false を返す可能性がありますが、false として評価される値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

上記の例だと、!=で比べるとマッチしなかったのか失敗したのか判断ができません。

最後に

PHPDocumentationの確認は大事ですね。
まさか、PHPの標準関数で型比較まで求められるとは思わなかった。
あと、静的解析のPHPStanなど入れると検知することもできるのでおすすめです。

0
1
2

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
0
1