PHP 8.2.30
Preview: 024.phpt Size: 3.32 KB
//opt/alt/tests/alt-php83-pecl-msgpack_2.2.0-1.el8/tests/024.phpt

--TEST--
Recursive objects
--SKIPIF--
<?php
if ((version_compare(PHP_VERSION, '5.2.13') <= 0) ||
    (version_compare(PHP_VERSION, '5.3.0') >= 0 &&
     version_compare(PHP_VERSION, '5.3.2') <= 0)) {
    echo "skip tests in PHP 5.2.14/5.3.3 or newer";
}
--FILE--
<?php
if(!extension_loaded('msgpack')) {
    dl('msgpack.' . PHP_SHLIB_SUFFIX);
}

function test($type, $variable, $test) {
    $serialized = msgpack_serialize($variable);
    $unserialized = msgpack_unserialize($serialized);

    echo $type, PHP_EOL;
    echo bin2hex($serialized), PHP_EOL;
    var_dump($unserialized);
    echo $test || $unserialized == $variable ? 'OK' : 'ERROR', PHP_EOL;
}

class Obj {
    public $a;
    protected $b;
    private $c;

    function __construct($a, $b, $c) {
        $this->a = $a;
        $this->b = $b;
        $this->c = $c;
    }
}

#[AllowDynamicProperties()]
class Obj2 {
    public $aa;
    protected $bb;
    private $cc;
    private $obj;

    function __construct($a, $b, $c) {
        $this->a = $a;
        $this->b = $b;
        $this->c = $c;

        $this->obj = new Obj($a, $b, $c);
    }
}

class Obj3 {
    private $objs;

    function __construct($a, $b, $c) {
        $this->objs = array();

        for ($i = $a; $i < $c; $i += $b) {
            $this->objs[] = new Obj($a, $i, $c);
        }
    }
}

class Obj4 {
    private $a;
    private $obj;

    function __construct($a) {
        $this->a = $a;
    }

    public function set($obj) {
        $this->obj = $obj;
    }
}

$o2 = new Obj2(1, 2, 3);
test('objectrec', $o2, false);

$o3 = new Obj3(0, 1, 4);
test('objectrecarr', $o3, false);

$o4 = new Obj4(100);
$o4->set($o4);
test('objectselfrec', $o4, true);
?>
--EXPECTF--
objectrec
88c0a44f626a32a26161c0a5002a006262c0a8004f626a32006363c0a9004f626a32006f626a84c0a34f626aa16101a4002a006202a6004f626a006303a16101a16202a16303
object(Obj2)#%d (7) {
  ["aa"]=>
  NULL
  [%r"?bb"?:protected"?%r]=>
  NULL
  [%r"?cc"?:("Obj2":)?private"?%r]=>
  NULL
  [%r"?obj"?:("Obj2":)?private"?%r]=>
  object(Obj)#%d (3) {
    ["a"]=>
    int(1)
    [%r"?b"?:protected"?%r]=>
    int(2)
    [%r"?c"?:("Obj":)?private"?%r]=>
    int(3)
  }
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}
OK
objectrecarr
82c0a44f626a33aa004f626a33006f626a739484c0a34f626aa16100a4002a006200a6004f626a00630484c0a34f626aa16100a4002a006201a6004f626a00630484c0a34f626aa16100a4002a006202a6004f626a00630484c0a34f626aa16100a4002a006203a6004f626a006304
object(Obj3)#%d (1) {
  [%r"?objs"?:("Obj3":)?private"?%r]=>
  array(4) {
    [0]=>
    object(Obj)#%d (3) {
      ["a"]=>
      int(0)
      [%r"?b"?:protected"?%r]=>
      int(0)
      [%r"?c"?:("Obj":)?private"?%r]=>
      int(4)
    }
    [1]=>
    object(Obj)#%d (3) {
      ["a"]=>
      int(0)
      [%r"?b"?:protected"?%r]=>
      int(1)
      [%r"?c"?:("Obj":)?private"?%r]=>
      int(4)
    }
    [2]=>
    object(Obj)#%d (3) {
      ["a"]=>
      int(0)
      [%r"?b"?:protected"?%r]=>
      int(2)
      [%r"?c"?:("Obj":)?private"?%r]=>
      int(4)
    }
    [3]=>
    object(Obj)#%d (3) {
      ["a"]=>
      int(0)
      [%r"?b"?:protected"?%r]=>
      int(3)
      [%r"?c"?:("Obj":)?private"?%r]=>
      int(4)
    }
  }
}
OK
objectselfrec
83c0a44f626a34a7004f626a34006164a9004f626a34006f626a82c0040001
object(Obj4)#%d (2) {
  [%r"?a"?:("Obj4":)?private"?%r]=>
  int(100)
  [%r"?obj"?:("Obj4":)?private"?%r]=>
  *RECURSION*
}
OK

Directory Contents

Dirs: 0 × Files: 132

Name Size Perms Modified Actions
203 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
489 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
562 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
861 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
542 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
604 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.06 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.20 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.47 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.43 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
804 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
963 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
892 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
887 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1009 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1016 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.02 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.16 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
795 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.54 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
841 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
606 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.12 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.26 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
854 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
556 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.32 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.09 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.59 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.55 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.22 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.51 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
934 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.26 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.24 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.28 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
965 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
723 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
886 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
906 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
957 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.09 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.08 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.05 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
964 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.58 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.62 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.69 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.15 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.24 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.65 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.72 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.23 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.33 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.27 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.31 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
5.19 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
5.19 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.79 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.85 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.75 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.74 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.82 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.72 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.72 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.02 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.92 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
5.22 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.69 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.82 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.52 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.65 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.74 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.88 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.57 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.70 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.60 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.85 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.98 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.68 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.81 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.71 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.46 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.47 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.66 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.67 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.78 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.79 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.34 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.34 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.18 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.19 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.39 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.54 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.55 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.74 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.75 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.86 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.87 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.41 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.42 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.26 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.26 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.47 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.41 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.42 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.61 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.62 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.73 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.74 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.29 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.29 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.13 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.13 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.34 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.13 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.04 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.45 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.45 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
409 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
652 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
311 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
906 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
536 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
428 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.11 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
512 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
751 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.11 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
402 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
358 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.18 MB lrw-r--r-- 2024-03-20 16:29:38
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).