こんにちは。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を入れてほしいと依頼があった際に遭遇しました。
コメント