Можно ли использовать GetText внутри класса PHP? - PullRequest
0 голосов
/ 26 октября 2011

Например:

    class User {
        private $sex = 1;

        public function getSex() {
            if($this->sex == 1)
                return __('Male');
            elseif($this->sex == 2)
                return __('Female');
        }
    } 

Я считал, что лучше не использовать gettext внутри класса, но я не знаю, что я могу сделать в этом случае.

1 Ответ

3 голосов
/ 26 октября 2011

В PHP допустимо использовать глобальные функции внутри объектов - поскольку большинство встроенных библиотек в любом случае являются глобальными функциями, на самом деле не имеет смысла, чтобы это не имело место.В этом случае, поскольку вы используете внешнюю библиотеку, она кажется мне наиболее разумным подходом.

В качестве примечания:

  1. getSex () всегда должен возвращать что-то каквопрос хорошей практики программирования, возможно, в этом случае было бы хорошо, чтобы он возвращал __('Unknown'); или __('Other');
  2. Если вы делаете серию if(a == b){}elseif(a == c){}elseif(a ==d )..., вам лучшеиспользуя оператор switch.
  3. Обычно более распространено, что если есть метод getX и есть закрытая переменная x, getX будет возвращать что-то того же типа, что и x - в этом случае обавернул бы номер.Это не всегда так (он инкапсулирован по причине), но это поможет другим разработчикам лучше изучить базу кода.
...