Some questions to ask yourself when you're debugging a problem:
- have you used an 'if' statement where you need a 'while', or vice versa?
- have you made an assignment (=) instead of an expression (==)?
- did you forget to call your parent's constructor?
- did you pass a constant value instead of a constant name to e.g. defined()
- have you changed a positional interface (function parameters in order) without updating callers? positional interfaces are typically used in DAL add() and set() functions. as a general rule you should only add parameters and never change their order.