ブログを検索

2021/08/09

データ型もあいまいな PHP ・・・でも厳しい面もあったという話

今、先月の末日を取得するというのを PHP(バージョン7.3.5)で書いてて

$last_month_last_day = $day->modify('last  day of last month')->format('Y-m-d 23:59:59');

この行 ↑ が LINTチェックでは問題ないけど実行すると下記のエラーになる・・・

Fatal error: Uncaught Error: Call to a member function format() on bool in XXX.php

何度見ても間違っていないので5分くらい経ったころ、PHPの不具合を疑い始めた・・・
長年の経験から変な話ではありますが、言語の不具合を疑うようになったらそれはプログラムのほうのミスが確定したのとイコールなので安心してバグ探しに専念します。
30歳から筋金入りの老眼なので文字サイズを3センチくらいに拡大してじっくり見てみると・・・

え?まさか・・・これ?これなの?うそー!
PHP ってお気楽お手軽言語だと思ってたのに変なところがシビア!
そもそも LINTチェックの意味分かってないだろ PHP 笑
ま、それが PHP らしさかも 笑

×  $last_month_last_day = $day->modify('last  day of last month')->format('Y-m-d 23:59:59');

$last_month_last_day = $day->modify('last day of last month')->format('Y-m-d 23:59:59');

前後の行との体裁を整えるため last と day の間に半角空白 2文字を入れてたのが許されなかったのでした
last と day の間の空白は半角1文字でなければならないぽい 笑
ここでは書いていないけど first day の記述でも同様だった

インタプリタ系の言語で実行速度を得るにはこうしたアプローチはあるんだろうけど PHP って記述のゆるさが特徴みたいなもので突然のこれの遭遇にビビった次第です。

これだけは譲れないみたいなすごいな PHP 笑

別の環境の PHP 5.5.14 で試したところやはり同様の結果になりましたので仕様なんでしょうね。
へえー

0 件のコメント:

コメントを投稿

違法無線局?不法無線局?が大量発生

 ヨゴデでは毎年冬になると違法局か不法局がVHF帯に大量発生します 暖冬で雪が少ない年は発生しませんでしたが今年は雪が多かったので発生しています 使う周波数は、気にかけているのか分かりませんが通常の音声通話の周波数でなく広帯域データの周波数で多数の局が音声通話しています で、そう...