1, "b"=> 1]; $second = ["b" => 2, "c" => 2]; $third = []; $stack = new ArrayViewStack(); $stack->push($first)->push($second)->push($third); self::assertSame(null, $stack->get("d")); self::assertSame(2, $stack->get("c")); self::assertSame(2, $stack->get("b")); self::assertSame(1, $stack->get("a")); $stack["a"] = "x"; $stack["b"] = "y"; $stack["c"] = "z"; $stack["d"] = "t"; self::assertSame("t", $stack->get("d")); self::assertSame("z", $stack->get("c")); self::assertSame("y", $stack->get("b")); self::assertSame("x", $stack->get("a")); unset($stack["a"]); unset($stack["b"]); unset($stack["c"]); unset($stack["d"]); self::assertSame(null, $stack->get("d")); self::assertSame(2, $stack->get("c")); self::assertSame(2, $stack->get("b")); self::assertSame(1, $stack->get("a")); } }