return $value;
}
+ /**
+ * Get first value from named stacker
+ *
+ * @param $stackerName Name of the stack
+ * @return $value Value of last added value
+ * @throws NoStackerException If the named stacker was not found
+ * @throws EmptyStackerException If the named stacker is empty
+ */
+ protected final function getFirstValue ($stackerName) {
+ // Is the stack not yet initialized or full?
+ if (!$this->isStackInitialized($stackerName)) {
+ // Throw an exception
+ throw new NoStackerException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND);
+ } elseif ($this->isStackEmpty($stackerName)) {
+ //Throw an exception
+ throw new EmptyStackerException(array($this, $stackerName), self::EXCEPTION_STACKER_IS_EMPTY);
+ }
+
+ // Now get the last value
+ $value = $this->stacks[$stackerName]['entries'][0];
+
+ // Return it
+ return $value;
+ }
+
/**
* "Pops" last entry from stack
*
// Now, remove the last entry, we don't care about the return value here, see elseif() block above
array_pop($this->stacks[$stackerName]['entries']);
}
+
+ /**
+ * "Pops" first entry from stack
+ *
+ * @param $stackerName Name of the stack
+ * @return void
+ * @throws NoStackerException If the named stacker was not found
+ * @throws EmptyStackerException If the named stacker is empty
+ */
+ protected final function popFirst ($stackerName) {
+ // Is the stack not yet initialized or full?
+ if (!$this->isStackInitialized($stackerName)) {
+ // Throw an exception
+ throw new NoStackerException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND);
+ } elseif ($this->isStackEmpty($stackerName)) {
+ //Throw an exception
+ throw new EmptyStackerException(array($this, $stackerName), self::EXCEPTION_STACKER_IS_EMPTY);
+ }
+
+ // Now, remove the last entry, we don't care about the return value here, see elseif() block above
+ array_shift($this->stacks[$stackerName]['entries']);
+ }
}
// [EOF]