On Thu, 02 Jun 2005 09:05:24 -0400
Jean-Francois Levesque <[EMAIL PROTECTED]> wrote:
> 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?
I get "2 ; 2" and no error with latest snapshots of 5.0.5-dev and HEAD.
Check if you have zend.ze1_compatibility_mode Off.
--
Wbr,
Antony Dovgal aka tony2001
[EMAIL PROTECTED]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php