文字

MongoDB\BSON\Serializable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Serializable::bsonSerializeProvides an array or document to serialize as BSON

说明

abstract public array|object MongoDB\BSON\Serializable::bsonSerialize ( void )

Called during serialization of the object to BSON. The method must return an array or stdClass.

Root documents (e.g. a MongoDB\BSON\Serializable passed to MongoDB\BSON\fromPHP() ) will always be serialized as a BSON document. For field values, associative arrays and stdClass instances will be serialized as a BSON document and sequential arrays (i.e. sequential, numeric indexes starting at 0) will be serialized as a BSON array.

参数

此函数没有参数。

返回值

An array or stdClass to be serialized as a BSON array or document.

范例

Example #1 MongoDB\BSON\Serializable::bsonSerialize() returning an associative array for root document

<?php

class  MyDocument  implements  MongoDB \ BSON \ Serializable
{
    function 
bsonSerialize ()
    {
        return [
'foo'  =>  'bar' ];
    }
}

$bson  MongoDB \ BSON \ fromPHP (new  MyDocument );
echo 
MongoDB \ BSON \ toJSON ( $bson ),  "\n" ;

?>

以上例程会输出:

{ "foo" : "bar" }

Example #2 MongoDB\BSON\Serializable::bsonSerialize() returning a sequential array for root document

<?php

class  MyArray  implements  MongoDB \ BSON \ Serializable
{
    function 
bsonSerialize ()
    {
        return [
1 2 3 ];
    }
}

$bson  MongoDB \ BSON \ fromPHP (new  MyArray );
echo 
MongoDB \ BSON \ toJSON ( $bson ),  "\n" ;

?>

以上例程会输出:

{ "0" : 1, "1" : 2, "2" : 3 }

Example #3 MongoDB\BSON\Serializable::bsonSerialize() returning an associative array for document field

<?php

class  MyDocument  implements  MongoDB \ BSON \ Serializable
{
    function 
bsonSerialize ()
    {
        return [
'foo'  =>  'bar' ];
    }
}

$value  = [ 'document'  => new  MyDocument ];
$bson  MongoDB \ BSON \ fromPHP ( $value );
echo 
MongoDB \ BSON \ toJSON ( $bson ),  "\n" ;

?>

以上例程会输出:

{ "document" : { "foo" : "bar" } }

Example #4 MongoDB\BSON\Serializable::bsonSerialize() returning a sequential array for document field

<?php

class  MyArray  implements  MongoDB \ BSON \ Serializable
{
    function 
bsonSerialize ()
    {
        return [
1 2 3 ];
    }
}

$value  = [ 'array'  => new  MyArray ];
$bson  MongoDB \ BSON \ fromPHP ( $value );
echo 
MongoDB \ BSON \ toJSON ( $bson ),  "\n" ;

?>

以上例程会输出:

{ "array" : [ 1, 2, 3 ] }

参见

  • MongoDB\BSON\Unzerializable::bsonUnserialize()
  • MongoDB\BSON\Persistable
  • Persisting Data
上一篇: 下一篇: