説明
maybe_unserialize() は、シリアライズされた文字列を、元のデータに戻す関数です。
基本構文
maybe_unserialize( string $data ): mixed
引数
$data:変換する文字列
戻り値
元のデータ。
使い方(サンプル)
$data = maybe_unserialize( $stored );
注意点
- 信頼できないデータをアンシリアライズすると、危険です。外部から受け取った値には使いません。
実務での使いどころ
- データベースから、直接取得した値(
$wpdb->get_var()など)を、元の配列に戻すとき。
よくあるミスと対処
get_option()などは、自動で復元される。二重に呼ぶ必要はない。- 信頼できない、外部の入力に使っている。オブジェクトが生成され、攻撃に使われるおそれがある。外部の入力は、JSON(
json_decode())で扱う。
NG例
$data = maybe_unserialize( $_POST['data'] ); // 外部の入力を、復元している
OK例
$data = json_decode( wp_unslash( $_POST['data'] ), true );
使い分け早見表
| 関数 | 役割 |
|---|---|
maybe_unserialize() |
シリアライズされた文字列を、元に戻す |
maybe_serialize() |
配列・オブジェクトを、文字列にする |
is_serialized() |
シリアライズされた形式かを、判定する |
関連項目
maybe_serialize()、is_serialized()
公式リファレンス:maybe_unserialize() | Function | WordPress Developer Resources

コメント