通常 private や protected に指定されているクラスのプロパティやメソッドを読み書きしたり実行したりすることは出来ません。 しかしテストの際などに一時的にその制限を無視してアクセスしたい場合もあります。そういったときは ReflectionClass を使うことで実現できます。 <?php class MyClass { private $foo = ""; private function bar($str){ return $str . "!"; } } $myClass = new MyClass(); $refrection = new ReflectionClass(get_class($myClass)); // プロパティの読み書き $foo = $refrection->getProperty('foo'); $foo->setAccessible(true