class ctools_math_expr_stack
Class implementing a simple stack structure, used by ctools_math_expr.
Hierarchy
- class \ctools_math_expr_stack
Expanded class hierarchy of ctools_math_expr_stack
File
-
includes/
math-expr.inc, line 818
View source
class ctools_math_expr_stack {
/**
* The stack.
*
* @var array
*/
private $stack;
/**
* The stack pointer, points at the first empty space.
*
* @var int
*/
private $count;
/**
* Ctools_math_expr_stack constructor.
*/
public function __construct() {
$this->stack = array();
$this->count = 0;
}
/**
* Push the value onto the stack.
*
* @param mixed $val
*/
public function push($val) {
$this->stack[$this->count] = $val;
$this->count++;
}
/**
* Remove the most recently pushed value and return it.
*
* @return mixed|null
* The most recently pushed value, or NULL if the stack was empty.
*/
public function pop() {
if ($this->count > 0) {
$this->count--;
return $this->stack[$this->count];
}
return NULL;
}
/**
* "Peek" the stack, or Return a value from the stack without removing it.
*
* @param int $n
* Integer indicating which value to return. 1 is the topmost (i.e. the
* value that pop() would return), 2 indicates the next, 3 the third, etc.
*
* @return mixed|null
* A value pushed onto the stack at the nth position, or NULL if the stack
* was empty.
*/
public function last($n = 1) {
return !empty($this->stack[$this->count - $n]) ? $this->stack[$this->count - $n] : NULL;
}
/**
* Return the number of items on the stack.
*
* @return int
* The number of items.
*/
public function count() {
return $this->count;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
ctools_math_expr_stack::$count | private | property | The stack pointer, points at the first empty space. |
ctools_math_expr_stack::$stack | private | property | The stack. |
ctools_math_expr_stack::count | public | function | Return the number of items on the stack. |
ctools_math_expr_stack::last | public | function | "Peek" the stack, or Return a value from the stack without removing it. |
ctools_math_expr_stack::pop | public | function | Remove the most recently pushed value and return it. |
ctools_math_expr_stack::push | public | function | Push the value onto the stack. |
ctools_math_expr_stack::__construct | public | function | Ctools_math_expr_stack constructor. |