2013-09-20 1 views
0

У меня есть этот простой одноэлементный класс:Singleton модель не работает в PHP 5.2

public static function getInstance() {     
    if (!self::$_controller) { 
     self::$_controller = new self(); 
    } 

    return self::$_controller; 
} 

Использование PHP 5.3, этот код, кажется, работает хорошо, но на PHP 5.2, похоже экземпляр не возвращается. Я положил в простой отладки сообщения следующим образом:

public static function getInstance() {     
    if (!self::$_controller) { 
     self::$_controller = new self(); 
     echo "I seem to be working"; 
    } 

    return self::$_controller; 
} 

Но «кажется, я работать» никогда не вторит вне. Что здесь происходит и как я могу это исправить?

+0

'var_dump (self :: $ _ controller)' перед 'if'? – Ryan

+0

Что вы имели в виду с собой: $ _ controller = new self(); Является ли ваше имя класса «я»? –

+0

@dbh: Не могли бы вы вставить весь код файла класса? – anupam

ответ

1

Следующее работает в моем конце для PHP 5.3 и 5.2 обоих.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
ini_set('log_errors', 0); 

class SingleTon { 
     private static $_controller = null; 

     private function __construct() { 
       // do something here or leave it blank. 
     } 

     public static function getInstance() { 
       if (!self::$_controller) { 
         self::$_controller = new self(); 
         echo "I seem to be working"; 
       } 

       return self::$_controller; 
     } 
} 

$obj = SingleTon::getInstance(); 
echo "\n"; 

?>

Он отображает "Я, кажется, работает". Дайте мне знать, если вам нужна дополнительная помощь.

+0

Моя проблема была где-то совсем другим, но это действительно работает. Благодарю. – Darren