I'm developing a PHP login component which includes functions to manipulate the User object, such as
$User->changePassword(string $old, string $new)
What I need some advice with is how to return a status, as the function can either succeed (no further information needs to be given) or fail (and the calling code needs to know why, for example incorrect password, database problem etc.)
I've come up with the following ideas:
- Unix-style: return 0 on success, another code on failure. This doesn't seem particularly common in PHP and the language's type-coercion messes with this (a function returning FALSE on success?) This seems to be the best I can think of.
- Throw an exception on error. PHP's exception support is limited, and this will make life harder for anybody trying to use the functions.
- Return an array, containing a boolean for "success" or not, and a string or an int for "failure status" if applicable.
None of these seem particularly appealing, does anyone have any advice or better ideas?