©
Dieses Dokument verwendet PHP-Handbuch für chinesische Websites Freigeben
(PHP 5 >= 5.3.0)
The SplStack class provides the main functionalities of a stack implemented using a doubly linked list.
$mode
)$index
, mixed $newval
)$index
)$index
)$index
, mixed $newval
)$index
)$value
)$mode
)$serialized
)$value
)[#1] lsroudi at gmail dot com [2014-01-19 20:07:37]
<?php
class Stack {
private $splstack;
function __construct(\SplStack $splstack)
{
$this->splstack = $splstack;
}
public function calculateSomme()
{
if ($this->splstack->count() > 1){
$val1 = $this->splstack->pop();
$val2 = $this->splstack->pop();
$val = $val1 + $val2;
$this->splstack->push($val);
$this->calculateSomme();
}
}
public function displaySomme()
{
$result = $this->splstack->pop();
return $result;
}
}
$splstack = new \SplStack();
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$splstack->push(10);
$stack = new Stack($splstack);
$stack->calculateSomme();
die(var_dump($stack->displaySomme())); // 150
?>
source : https://github.com/lsroudi/OOPWithSPL/blob/master/Stack/Stack.php
[#2] lsroudi at gmail dot com [2014-01-19 00:03:13]
the SplStack is simply a SplDoublyLinkedList with an iteration mode IT_MODE_LIFO and IT_MODE_KEEP
[#3] Sandro Alves Peres [2013-06-12 12:04:13]
<?php
# Think of the stack as an array reversed, where the last element has index zero
$stack = new SplStack();
$stack->push('a');
$stack->push('b');
$stack->push('c');
$stack->offsetSet(0, 'C'); # the last element has index zero
$stack->rewind();
while( $stack->valid() )
{
echo $stack->current(), PHP_EOL;
$stack->next();
}
?>