File: bug1006-001.phpt

package info (click to toggle)
php-mongodb 1.5.3-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 12,776 kB
  • sloc: ansic: 78,913; xml: 2,277; php: 990; sh: 107; python: 47; pascal: 21; makefile: 2
file content (54 lines) | stat: -rw-r--r-- 1,013 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
--TEST--
PHPC-1006: Do not modify memory of Persistable::bsonSerialize() return value
--FILE--
<?php

require_once __DIR__ . '/../utils/tools.php';

class MyClass implements MongoDB\BSON\Persistable
{
    public $data;

    public function __construct()
    {
        $this->data = [
            '__pclass' => 'baz',
            'foo' => 'bar',
        ];
    }

    function bsonSerialize()
    {
        return $this->data;
    }

    function bsonUnserialize(array $data)
    {
    }
}

$obj = new MyClass;
var_dump($obj->data);
hex_dump(fromPHP($obj));
var_dump($obj->data);

?>
===DONE===
<?php exit(0); ?>
--EXPECT--
array(2) {
  ["__pclass"]=>
  string(3) "baz"
  ["foo"]=>
  string(3) "bar"
}
     0 : 28 00 00 00 05 5f 5f 70 63 6c 61 73 73 00 07 00  [(....__pclass...]
    10 : 00 00 80 4d 79 43 6c 61 73 73 02 66 6f 6f 00 04  [...MyClass.foo..]
    20 : 00 00 00 62 61 72 00 00                          [...bar..]
array(2) {
  ["__pclass"]=>
  string(3) "baz"
  ["foo"]=>
  string(3) "bar"
}
===DONE===