【PHP】str_replace関数のNULLの注意点

※本サイトはアフィリエイトリンクを掲載しています。
PHP

こんにちは。Web系エンジニアのカズです。

str_replace関数のNULLの挙動によって、過去に意外と時間を使ってしまった事がありました。

本記事で共有してお役に立てればと思います。

 

本記事の内容

・str_replace関数とは

・str_replaceのNullの注意点

・どんな時に、このケースに遭遇するか

 

str_replace関数とは

str_replace関数とは文字列を置換できる関数のことです。

第1引数に検索する文字列、第2引数に置換後の文字列、第3引数に置換対象の文字列を指定します。

例えば上記の例では、$colorは赤から青に変換されます。
 

str_replace関数のNullの注意点

本題ですが、str_replace関数の処理を通したときは意図せずに

NULLが空に変換されてしまいます。

例えば下記のように、検索対象外の文字だとしても意図せずに空に変換されます。


結果はNULLではなく空になります。

また、こちらの例も同様に空になります。


NULLに変換することはできません。

 

どんな時に、このケースに遭遇するか

例えば私が、遭遇したのはテーブル定義がint型のカラムに対して条件に合わなければNULLを入れてほしいと依頼があった際に遭遇しました。

※本来int型にはdefaultでは数値をいれる設計が望ましいと思います。
しかし、外部連携先との兼ね合いで要求を受け入れないといけない場合もあり得ます。

コメント