assertEquals(1, $_FOO['bar']); $this->assertEquals(1, $_FOO['whiz']); $this->assertFalse(isset($_FOO['bang'])); $this->assertEquals(1, $_EXTRA); CRM_Utils_GlobalStack::singleton()->push([ '_FOO' => [ 'bar' => 2, 'bang' => 2, ], '_EXTRA' => 2, ]); $this->assertEquals(2, $_FOO['bar']); $this->assertEquals(1, $_FOO['whiz']); $this->assertEquals(2, $_FOO['bang']); $this->assertEquals(2, $_EXTRA); CRM_Utils_GlobalStack::singleton()->pop(); $this->assertEquals(1, $_FOO['bar']); $this->assertEquals(1, $_FOO['whiz']); $this->assertEquals(NULL, $_FOO['bang']); $this->assertEquals(1, $_EXTRA); } }