예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function getOpcode()
 {
     if (count($this->_frames) == 0) {
         throw new \UnderflowException('No frames have been added to this message');
     }
     return $this->_frames->bottom()->getOpcode();
 }
예제 #2
0
 /**
  * @return boolean
  */
 public function isBinary()
 {
     if ($this->_frames->isEmpty()) {
         throw new \UnderflowException('Not enough data has been received to determine if message is binary');
     }
     return Frame::OP_BINARY === $this->_frames->bottom()->getOpcode();
 }
예제 #3
0
$list->key();
// count()
// 获得链表的数量
$list->count();
// rewind()
// 将指针返回至初始节点
$list->rewind();
// current()
// 获得当前节点
$list->current();
// top()
// 返回最后一个节点的值
$list->top();
// bottom()
// 返回第一个节点的值
$list->bottom();
// next()
// 指针移到下一个节点
$list->next();
// prev()
// 指针移到上一个节点, 如果原本指针在第一个,那么前一个节点为-1,并且将无法获得当前值
$list->prev();
// valid()
// 判断该链表是否有更多的值,返回bool
$list->valid();
// isEmpty()
// 判断该链表是否为空链表,返回bool
$list->isEmpty();
// offsetExists($index)
// 判断参索引是否存在,返回bool
$list->offsetExists(2);
예제 #4
0
    $dll->shift();
} catch (RuntimeException $e) {
    echo "Exception: " . $e->getMessage() . "\n";
}
// data consistency
$a = 2;
$dll->push($a);
echo $dll->pop() . "\n";
$a = 2;
$dll->unshift($a);
echo $dll->shift() . "\n";
// peakable
$dll->push(1);
$dll->push(2);
echo $dll->top() . "\n";
echo $dll->bottom() . "\n";
$dll->pop();
$dll->pop();
// countable
$dll->push(NULL);
$dll->push(NULL);
echo count($dll) . "\n";
echo $dll->count() . "\n";
var_dump($dll->pop());
var_dump($dll->pop());
// clonable
$dll->push(2);
$dll_clone = clone $dll;
$dll_clone->pop();
echo count($dll) . "\n";
?>
<?php

$list = new SplDoublyLinkedList();
$list->push("top");
$list->bottom(45);
<?php

$list = new SplDoublyLinkedList();
$list->push("top");
$list->bottom(array());
<?php

$list = new SplDoublyLinkedList();
$list->push("top");
$list->bottom(3.14159);
<?php

$list = new SplDoublyLinkedList();
$list->push("top");
$list->bottom(null);
<?php

$list = new SplDoublyLinkedList();
$list->push('oh');
$list->push('hai');
$list->push('thar');
echo $list->bottom() . "\n";
$list->offsetUnset(0);
echo $list->bottom() . "\n";
예제 #10
0
<?php

$dll = new SplDoublyLinkedList();
$dll->push('Never');
$dll->push('gonna');
$dll->push('give');
// at pos 0, shift everything up
$dll->add(0, 'you');
// Should be the end
$dll->add(4, 'up');
// Somewhere in the middle
$dll->add(2, 'let');
try {
    // Key 12 is unaccessible
    $dll->add(12, 'down');
} catch (OutOfRangeException $e) {
    echo $e->getMessage(), PHP_EOL;
}
foreach ($dll as $key => $val) {
    echo $key . '=>' . $val, PHP_EOL;
}
echo "count(): " . $dll->count(), PHP_EOL;
echo "top(): " . $dll->top(), PHP_EOL;
echo "bottom(): " . $dll->bottom(), PHP_EOL;
예제 #11
0
 /**
  * Peeks a `Token` from the beginning of the list.
  *
  * @return Token The first token.
  * @link http://www.php.net/manual/en/spldoublylinkedlist.bottom.php
  */
 public function bottom()
 {
     return $this->tokens->bottom();
 }