Hi Joe,

On Tue, Feb 10, 2015 at 4:31 PM, Joe Watkins <pthre...@pthreads.org> wrote:

> Actually I'm not sure it's at all sane to try to override contracts, I'd
> actually avoid that completely, so no need to name contracts and no need
> for magic __invariant.


For example,

class Animal {
   protected $legs;
   require($legs >= 0);
}

class Snake extends Animal {
  // Snake is fine, no leg
}

class Human extends Animal {
  // 2 legs. $this->leg === 2
}

Overriding makes sense for many cases.

Regards,

--
Yasuo Ohgaki
yohg...@ohgaki.net

Reply via email to