【问题标题】:php-intl conflicts with custom Locale classphp-intl 与自定义语言环境类冲突
【发布时间】:2017-09-12 11:10:40
【问题描述】:

我在一个网站上工作,在服务器上安装 php5-intl 库后,某些页面无法正常工作。经过几个小时的调试,我发现问题在于代码中名为 Locale 的类的名称。

除了重命名类之外,还有其他解决方案吗?

【问题讨论】:

  • 您要么需要重命名它,要么(理想情况下)将它移动到您自己的命名空间中。这就是命名空间的真正用途。
  • @iainn 谢谢。网站代码是多年前开发的,其中没有任何名称空间的使用。所以我必须为其中的每个类添加命名空间?
  • 好吧,并不是每个班级都有,但您肯定需要处理Locale 一个。命名空间与目录结构相匹配是一种很好的做法,但没有要求。在您的情况下重命名可能更容易 - 如果您正在处理一个巨大的遗留代码库,那么在命名空间中只有一个类可能会有点奇怪。

标签: php internationalization php-5.5


【解决方案1】:

听起来像是命名空间冲突。你有一个叫Locale的类?给它一个命名空间:

<?php

namespace My;

class Locale
{
   //
}

那么你可以说:

use My\Locale;

如果你的代码同时使用了这两个类,你可以给其中一个取别名:

use Locale;
use My\Locale as MyLocale;

然后你可以说new MyLocale();,不会有冲突。 希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多