maybe_serialize() の使い方|説明・引数・注意点

説明

maybe_serialize() は、配列やオブジェクトを、必要に応じてシリアライズして文字列にする関数です。

基本構文

maybe_serialize( mixed $data ): mixed

引数

  • $data:変換するデータ

戻り値

シリアライズした文字列。スカラー値はそのまま。

使い方(サンプル)

$s = maybe_serialize( array( 'a' => 1 ) );

注意点

  • update_option() などは、内部で自動的に呼ばれます。

実務での使いどころ

  • 配列やオブジェクトを、文字列にして、データベースに保存するとき(update_option() などが、内部で行う処理)。

よくあるミスと対処

  • update_option()・update_post_meta() は、内部で、自動的に呼ぶ。自分で呼ぶと、二重にシリアライズされる。
  • 文字列や数値は、そのまま返る(シリアライズされない)。
  • 外部とのやり取りに、使っている。復元には、オブジェクトを注入される危険があるため、外部とのやり取りは、JSONを使う。

NG例

update_option( 'my_data', maybe_serialize( $data ) ); // 二重にシリアライズされる

OK例

update_option( 'my_data', $data ); // 配列のまま渡せば、自動で処理される

使い分け早見表

関数 役割
maybe_serialize() 配列・オブジェクトを、文字列にする
maybe_unserialize() シリアライズされた文字列を、元に戻す
is_serialized() シリアライズされた形式かを、判定する

関連項目

maybe_unserialize()、is_serialized()

公式リファレンス:maybe_serialize() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました