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 [email protected] 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(); ?>


Thread (11 messages)

« previous php.internals (#23235) next »