On Thu, Apr 17, 2008 at 9:57 AM, Stanislav Malyshev <[EMAIL PROTECTED]> wrote:
> What's the use of such code? If $var is '1' and not 1, what's the use of > throwing an exception and having to handle it later (basically by failing > the task, since you don't know how to do foo() now) - instead of just doing > with that 1 what was intended for? There's no any difference between 1 and > '1' that can be important to anybody. Only difference is the way it is > represented in underlying bits in zvals, about which nobody should ever > care. That's like making function that would accept only arguments that has > 3'rd bit of pointer set to 1 and 5th bit set to 0, and reject all others. No > sane application should ever behave this way. Writing such function is just > plain wrong, it replaces the substance of programming with nitpicking over > the details that are not important. Whole phenomenon of dynamic languages > has grown on the principle of liberating people from caring for bits and > concentrate on substance, and now you try to drag the bits back in. > So every time you call foo you need try/catch? And that's supposed to be > _good_? Somebody missed the point... Seeing how you work for zend I thought maybe you have used the zend framework = ) Sorry in my example I used "int" instead of "numeric", but my point is the same, grep in zend framework for is_bool. It does what you are complaining about: From: Zend_Pdf_Element_Numeric public function __construct($val) { if ( !is_numeric($val) ) { throw new Zend_Pdf_Exception('Argument must be numeric'); } $this->value = $val; } That could be... public function __construct(numeric $val) { $this->value = $val; } So, let's re-visit my point of "less code bloat"....