2013-02-11 5 views
0

у меня есть немного проблемы с получением синглтона работать в PHP 5.3PHP синглтона не доступен

Что я хочу, чтобы добиться того, что я буду иметь возможность включать один файл PHP с классом, , который позволяет мне переводить веб-страницы с помощью словаря через глобальный синглтон. Пример

Использование:

<?php 
    include_once "CLocale.php"; 
?> 
//... 
<head> 
<title><?php CLocale::Instance()->getText("StrMemberArea")?></title> 

Мой класс выглядит следующим образом на данный момент:

class CLocale 
{ 
    private function __clone() 
    { 
    } 

    public static function Instance() 
    { 
     if (static::$_instance === NULL) 
     { 
      static::$_instance = new static(); 
     } 
     return static::$_instance; 
    } 

    private function __construct() 
    { 
    } 

    public function getText($str) 
    { 
     return "Test"; 
    } 
} 

Итак, проблема, я не получаю никакого вывода «Test» при использовании класс, как показано выше, также, я не получаю никаких ошибок. PHP Storm на самом деле не показывает мне никаких ошибок. Возможно, один из вас, ребята, может где-то найти проблему.

Спасибо заранее, calav3ra

PS: Я не против того, как реализуется одноточечно

+1

Вы возвращаете его. Но вы не передаете его на вывод, так как нет вызова 'echo'. – ConcurrentHashMap

+1

Спасибо, geremy/nslbshtr. Я не могу поверить, что сделал. И я потратил три часа, прежде чем спрашивать здесь. Еще раз спасибо! :) – calav3ra

+1

Иногда вам просто нужна еще одна пара глаз, чтобы заглянуть в ваш код, чтобы увидеть что-то очевидное :) –

ответ

3

Yo забыл повторить результат

<title><?php CLocale::Instance()->getText("StrMemberArea")?></title> 

должно быть:

<title><?php echo CLocale::Instance()->getText("StrMemberArea")?></title> 
+0

Большое спасибо PeterM, то же самое относится и к вашему ответу. Я не могу поверить, что сделал. :) – calav3ra

2

Ehm - код Singleton совершенно прав, но вы забыли вывести возвращаемое значение из GetText

<?php 
    include_once "CLocale.php"; 
?> 
//... 
<head> 
<title><?php echo CLocale::Instance()->getText("StrMemberArea")?></title> 
+0

Не могу утверждать это достаточно часто: что я думал, когда не отзывался вообще? Спасибо, Philiüü – calav3ra

2

Чтобы получить что-либо отображаться вы не только не нужно, чтобы вернуть его, но и echo или print его. Например:

<title><?php echo CLocale::Instance()->getText("StrMemberArea")?></title> 
+0

Да. Спасибо, Михал :) – calav3ra

Смежные вопросы