大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

PHP 否定論理、比較演算 不思議に見えて、厳密じゃない式

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2025/04/24
最終更新日:2025/04/24
カテゴリー:技術情報
タグ:

津路です。久しぶりに投稿します。

最近、CGI+PerlからPHPに変換する機会がありまして、ウェブツールでざっくり変換していたのですが、問題が起こったため、投稿します。
ワーニングもエラーも、VS CODEでは出ないものの、そのまま走らせると、期待通りに行かない。
そのたびに、なぜなに?と考えてしまいます。

例えば、データベースから取得した件数が0なのか比較する場合、

と書いた場合、$rowCount=1の場合でも、==0では、trueになったりします。はあ?といろいろやってると、これは、$rowCount == 0でようやく、falseになりました。
C言語やVBAなどでは、空白無しでいけるんで、つい書いちゃいます。

これまた数値なのですが、if(!$val[‘itemno’])とかif($val[‘itemno’]>=1)なんて書いてしまって、そのまま放置すると、走らせたときに、!で”の場合にtrueとなると考えていると、ダメだったりします。PHP8です。
ですので、必ずIntValで変換することにしました。
また、Postmanなどから数値を投げる場合も、数値を文字列にするかどうか、受け側に合わせないとだめでした。

    コメントを残す

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    上に戻る