PHP5, objects not passed by reference?!?
| From: | Jean-Francois Levesque | Date: | Thu, 02 Jun 2005 13:05:24 +0000 |
| Subject: | PHP5, objects not passed by reference?!? | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-16354@lists.php.net to get a copy of this message | ||
Hi!
In PHP5, the objects are supposed to be passed by reference, right? I try to use a singleton pattern but it's not working. I just compile the lastest php version (5.0.4) and I still have the problem.
My code :
<?php
class Example
{
// Hold an instance of the class
private static $instance;
public $testvar = 'init';
// The singleton method
public static function singleton()
{
if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;} // Prevent users to clone the instance public function __clone() {
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
}
$test = Example::singleton();
$test2 = Example::singleton();
$test->testvar = 1;
$test2->testvar = 2;
echo $test->testvar." ; ".$test2->testvar;
?>
Output :
Fatal error: Clone is not allowed. in /usr/home/usagers/linux/step_html/stationnement/test.php on line 21
Phpinfo : http://step.polymtl.ca/~linux/stationnement/phpinfo.php
Should I set something in the php.ini? What can I do?
Thanks for your help!
Jean-Francois