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