概要
Carbon::parse(null)でCarbonインスタンスを生成すると期待した挙動にならなかった。
- 期待した挙動)
- null値が返る
- 実際の挙動)
- Carbonインスタンス(perseメソッドを呼び出した時点の時刻が設定されている)
毎回、引数のnullチェックするのは冗長なので、良い方法が無いか調べていると以下のissuesを見つけた。
結果的にどう対応するか?
Carbon::makeを利用すると、引数がnullの場合にnull値を取得できる。
var_dump(Carbon::make(null)); // null
var_dump(Carbon::make('2019-06-15 12:34:54')); // Carbon instance
ちなみにQiita記事等で良く見かける実装方法だと、null値では無く、メソッドの呼出し時刻でCarbonインタンスが生成されるので使い方に注意。
new Carbon(null); // Carbon::make('現在の時刻') で生成したインスタンスと同じものを返す
Carbon::parse(null) // Carbon::make('現在の時刻') で生成したインスタンスと同じものを返す