Hi!

> That makes some sense, still the issue Nikita brought up is that the
> __getHours() should not be callable.

I don't see any use case for this requirement. What *requires* that it
won't be callable and why it is so necessary that we introduce
additional complexity into the engine just to do it?

> This isn't the way isset() works, isset() will return true for a
> variable with a value of 0

Exactly my point. Your code (with != NULL) will return false while real
isset() will return true.

> AFAIK, there is no way to implement isset() in the same way, see my
> previous post about how isset() already causes a fatal error against
> the return value of a function.

Of course there is. Again, you're confusing implementing it in PHP
(which also possible but harder) and doing it in the engine (which
should be as easy as calling right functions/opcodes).

> When you say "check" do you mean "not allowed to compile?"  There is
> a runtime check that favors a property over an accessor, again Nikita
> wants to invert that and I agree.

I mean issuing E_STRICT or whatever we do in other cases of LSP violations.

> This is not true, see my previous post demonstrating that isset(a())
> causes a fatal error.

I'm not talking about applying isset to non-variable. isset(blah bah
blah) will also cause a fatal error. I'm talking about applying isset to
a proper variable (or whatever is looking as one). isset($foo->bar)
should never fail (to a reasonable degree - if you have accessor that
gets out of memory, etc. we can't do much there) however $foo->bar is
implemented underneath - it should only return true/false.

> public read-only $xyz;        - Tells me that the property $xyz cannot be
> written to and furthermore cannot be over-ridden (the purpose of the
> read-only keyword).
> 
> To be clear, the read-only keyword specifically means that no
> sub-classes may make this property writable, in other words the
> "non-writable" aspect means it is final.

This sounds way too complex and too much magic. I'd rather have people
implement it in user-space than introduce this complex and un-obvious
convoluted concepts into the language.
-- 
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to