Re: PHP6 OOP compiler feature question / request

From: Date: Wed, 10 May 2006 23:15:03 +0000
Subject: Re: PHP6 OOP compiler feature question / request
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-23235@lists.php.net to get a copy of this message
Antony, I believe Ralph was using isset() and unset() purely as arbitrary examples, e.g: class TestReservedKeywordMethods { function unset() { echo "unset<br />"; } function echo() { echo "echo<br />"; } function empty() { echo "empty<br />"; } } $test = new TestReservedKeywordMethods(); $test->unset(); $test->echo(); $test->empty(); PS: the underlying example does work, which gives me the feeling that it not so much an architechural limitation but rather a performance issue with regard to doing extra checks as to the context of an encoutered T_UNSET (for example) to determine whether it's okay, but I'm guessing really - (and it's probably is not exactly what Ralph is looking for): class TestReservedKeywordMethods { function __call($m) { echo "$m<br />"; } } $test = new TestReservedKeywordMethods(); $test->unset(); $test->echo(); $test->empty(); Antony Dovgal wrote:
__isset() and __unset() methods are what you're looking for. They are available since 5.1.0. See http://www.php.net/manual/en/language.oop5.overloading.php On 10.05.2006 21:28, Ralph Schindler wrote:
Architectural restrictions aside, is it far off to ask if something like this could be possible in PHP6: <? class TestReservedKeywordMethods {
     public $value = "2";
     public function isset()
     {
         if (is_null($this->value))
             return false;
         else
             return true;
     }
     public function unset()
     {
         $this->value = 0;
     }
} $test = new TestReservedKeywordMethods(); $test->isset(); $test->unset(); ?>


« previous php.internals (#23235) next »