xref: /PHP-5.3/ext/spl/tests/dllist_001.phpt (revision 3a4eb3e4)
1--TEST--
2SPL: DoublyLinkedList: std operations
3--INI--
4allow_call_time_pass_reference=1
5--FILE--
6<?php
7$dll = new SplDoublyLinkedList();
8// errors
9try {
10    $dll->pop();
11} catch (RuntimeException $e) {
12    echo "Exception: ".$e->getMessage()."\n";
13}
14try {
15    $dll->shift();
16} catch (RuntimeException $e) {
17    echo "Exception: ".$e->getMessage()."\n";
18}
19
20// data consistency
21$a = 2;
22$dll->push($a);
23$a = 3;
24$dll->push(&$a);
25$a = 4;
26echo $dll->pop()."\n";
27echo $dll->pop()."\n";
28
29$a = 2;
30$dll->unshift($a);
31$a = 3;
32$dll->unshift(&$a);
33$a = 4;
34echo $dll->shift()."\n";
35echo $dll->shift()."\n";
36
37// peakable
38$dll->push(1);
39$dll->push(2);
40echo $dll->top()."\n";
41echo $dll->bottom()."\n";
42$dll->pop();
43$dll->pop();
44
45// countable
46$dll->push(NULL);
47$dll->push(NULL);
48echo count($dll)."\n";
49echo $dll->count()."\n";
50var_dump($dll->pop());
51var_dump($dll->pop());
52
53// clonable
54$dll->push(2);
55$dll_clone = clone $dll;
56$dll_clone->pop();
57echo count($dll)."\n";
58?>
59===DONE===
60<?php exit(0); ?>
61--EXPECTF--
62Exception: Can't pop from an empty datastructure
63Exception: Can't shift from an empty datastructure
643
652
663
672
682
691
702
712
72NULL
73NULL
741
75===DONE===
76