Например такой код, гарантирует что в option будет экземпляр объекта Example
class Test{
private $option;
getOption():Example{
return $this->option
}
setOption(Example $option){
$this->option=$option;
}
}
А в целом, закрытие свойств и получение их через гетеры, это инкапсуляция, мы закрываем свойства и открываем методы, давая клиентскому коду некий интерфейс для работы с классом