note 51175 added to language.oop5.overloading

From: Date: Tue, 22 Mar 2005 18:22:51 +0000
Subject: note 51175 added to language.oop5.overloading
Groups: php.notes 
Request: Send a blank email to php-notes+get-86801@lists.php.net to get a copy of this message
Keep in mind that when your class has a __call() function, it will be used when PHP calls some other magic functions. This can lead to unexpected errors: <?php class TestClass { public $someVar; public function __call($name, $args) { // handle the overloaded functions we know... // [...] // raise an error if the function is unknown, just like PHP would trigger_error(sprintf('Call to undefined function: %s::%s().', get_class($this), $name), E_USER_ERROR); } } $obj = new TestClass(); $obj->someVar = 'some value'; echo $obj; //Fatal error: Call to undefined function: TestClass::__tostring(). $serializedObj = serialize($obj); // Fatal error: Call to undefined function: TestClass::__sleep(). $unserializedObj = unserialize($someSerializedTestClassObject); // Fatal error: Call to undefined function: TestClass::__wakeup(). ?> ---- Manual Page -- http://www.php.net/manual/en/language.oop5.overloading.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+51175 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+51175&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+51175&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+51175&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+51175&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+51175&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+51175&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#86801) next »