| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | <?phpnamespace PhpOffice\PhpSpreadsheet\Calculation\Engine;class CyclicReferenceStack{    /**     * The call stack for calculated cells.     *     * @var mixed[]     */    private $stack = [];    /**     * Return the number of entries on the stack.     *     * @return int     */    public function count()    {        return count($this->stack);    }    /**     * Push a new entry onto the stack.     *     * @param mixed $value     */    public function push($value)    {        $this->stack[$value] = $value;    }    /**     * Pop the last entry from the stack.     *     * @return mixed     */    public function pop()    {        return array_pop($this->stack);    }    /**     * Test to see if a specified entry exists on the stack.     *     * @param mixed $value The value to test     *     * @return bool     */    public function onStack($value)    {        return isset($this->stack[$value]);    }    /**     * Clear the stack.     */    public function clear()    {        $this->stack = [];    }    /**     * Return an array of all entries on the stack.     *     * @return mixed[]     */    public function showStack()    {        return $this->stack;    }}
 |