• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/maybe serialize

提供: WordPress Codex 日本語版
移動先: 案内検索

この項目「関数リファレンス/maybe serialize」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

必要な場合にデータを シリアル化 します。

使い方

<?php maybe_serialize( $data ); ?>

パラメータ

$data
mixed) (必須) シリアル化された(またはそのままの)データ。
初期値: なし

戻り値

(mixed) 
スカラーなデータ。

用例

<?php

// 文字列はそのまま返される。
$data = 'Hello World!';
echo maybe_serialize( $data );
// Hello World!

// 整数、浮動小数点数、論理型の値(真偽値)はそのまま返される。
$data = 55;
echo maybe_serialize( $data );
// 55

$data = 4.560
echo maybe_serialize( $data );
// 4.560

$data = true;
$data = maybe_serialize( $data );
// $data = true;

$data = null;
$data = maybe_serialize( $data );
// $data = null

// 配列やオブジェクトはシリアル化された後の文字列として返される。
$data = array( 1 => 'Hello World!', 'foo' => 'bar' );
echo maybe_serialize( $data );
// a:2:{i:1;s:12:"Hello World!";s:3:"foo";s:3:"bar";}

// シリアル化された後の文字列はもう一度シリアル化される。
$data = 'a:2:{i:1;s:12:"Hello World!";s:3:"foo";s:3:"bar";}';
echo maybe_serialize( $data );
// s:50:"a:2:{i:1;s:12:"Hello World!";s:3:"foo";s:3:"bar";}";

?>

参考

  • データを PHP が認識できる形式でデータベースへ正しく保存および取得できるように、それをシリアル化する必要がある場合があります。
  • 紛らわしいことに、シリアル化された値を表す文字列はもう一度シリアル化されるので、多重シリアル化が発生します。他の文字列はそのままにされます。

多重シリアル化を避けるひとつの方法は次のようなコードを使って値がシリアル化済みであるかチェックします。

<?php if ( ! is_serialized( $data ) ) { $data = maybe_serialize( $data ); } ?>

追加の情報が is_serialized() にあります。

変更履歴

新規導入: 2.0.5

ソースファイル

maybe_serialize()wp-includes/functions.php にあります。


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/maybe_serialize最新版との差分