可以在 PHP 类中使用 GetText 吗?

发布于 2024-12-11 18:28:59 字数 326 浏览 0 评论 0原文

例如:

    class User {
        private $sex = 1;

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

我认为最好不要在课堂上使用 gettext,但我不知道在这种情况下我能做什么。

For example :

    class User {
        private $sex = 1;

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

I believed that it's better to not use gettext inside class, but I don't know what can i do in this case.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

森罗 2024-12-18 18:28:59

在 PHP 中,在对象内部使用全局函数是可以接受的——因为无论如何,大多数内置库都是全局函数,如果不是这样的话,那真的没有意义。在这种情况下,由于您使用的是外部库,因此我认为这实际上是最谨慎的方法。

附带说明:作为

  1. 良好的编程实践, getSex() 应该始终返回一些内容,也许在这种情况下,让它返回 __('Unknown'); 或 < code>__('Other');
  2. 如果您正在执行一系列 if(a == b){}elseif(a == c){}elseif(a ==d ).. .,你最好使用switch 语句。
  3. 通常,更常见的是,如果有一个方法 getX 并且有一个私有变量 x,getX 将返回与 x 类型相同的内容 - 在这种情况下,两者都会返回一个数字。情况不一定总是如此(它被封装是有原因的),但它将帮助其他开发人员更好地学习代码库。

In PHP it is acceptable to use global functions inside of objects — since most of the built in libraries are global functions anyway, it wouldn't really make sense for this not to be the case. In this case, since you are using an external library, it actually strikes me as the most prudent approach.

As a side note:

  1. getSex() should always return something as a matter of good programming practice, perhaps, in this case, it would be good to have it return __('Unknown'); or __('Other');
  2. If you are doing a series of if(a == b){}elseif(a == c){}elseif(a ==d )..., you're better off using the switch statement.
  3. Normally, it is more common that if there is a method getX and there is a private variable x, getX will return something of the same type as x — in this case, both would return a number. This is not necessarily always the case (it's encapsulated for a reason), but it will help other developers learn the code base better.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文