June 2017
Intermediate to advanced
394 pages
8h 52m
English
First of all, what's an invariant? An invariant is a rule that must be true and consistent during code execution. For example, a stack is a LIFO (Last In, First Out) data structure that we can push items into and pop items out of. We can also ask how many items are inside of the stack; this is what's called the size of the stack. Consider a pure PHP implementation without using any specific PHP array functions such as array_pop:
class Stack { private $data; public function __construct() { $this->data = []; } public function push($value) { $this->data[] = $value; } public function size() { $size = 0; for ($i = 0; $i < count($this->data); $i++) { $size++; } return $size; } /** * @return ...