testClass = new class { use MagicProperties; protected string $foo = 'foo'; protected int $bar = 0x7b; public function __get(string $name) { if ($this->__isset($name)) { return $this->$name; } return NULL; } }; } public function test__get(): void { $this->assertEquals('foo', $this->testClass->__get('foo')); $this->assertNull($this->testClass->__get('fooBar')); } /** * @depends test__get */ public function test__isset(): void { $this->assertTrue($this->testClass->__isset('foo')); $this->assertFalse($this->testClass->__isset('fooBar')); } /** * @depends test__get */ public function test__set(): void { $this->testClass->__set('foo', 'baz'); $this->assertEquals('baz', $this->testClass->__get('foo')); $this->testClass->__set('baz', []); $this->assertFalse($this->testClass->__isset('baz')); $this->assertNull($this->testClass->baz); } }