【问题标题】:defining a constant to be used in different namespace php 5.4定义要在不同命名空间 php 5.4 中使用的常量
【发布时间】:2013-09-17 16:35:37
【问题描述】:

我在访问另一个命名空间中定义的常量时遇到问题

这是具有在中定义的常量的类

<?php namespace App\Box

class Green
{
  const COLOR = 'green';
}

这是用于从第一个类实例化实例的类

<?php namespace App\Tests

use App\Box\Green

class Test1
{
   protected $box;

   public function __construct()
   {
      $this->box = new Green;
   }
}

我收到以下错误

Use of undefined constant COLOR - assumed 'COLOR'

【问题讨论】:

  • ;在命名空间/使用之后?

标签: php namespaces constants


【解决方案1】:

这可能是因为无论您在哪里使用过/,都需要使用\。这对我有用:

namespace App\Box {
    class Green {
        const COLOR = 'green';
    }
}

namespace App\Tests {

    use App\Box\Green;

    class Test1 {
        public function __construct() {
            echo Green::COLOR;
        }
    }

    $t = new Test1(); // green
}

你想做什么?

【讨论】:

  • 哦,其实我用的是"\",我打错了"/"
  • 好的,它工作正常,我在你的例子中使用了双冒号,谢谢
  • 对了。是的;您可以像访问静态属性一样访问常量 - 您也可以使用 self::COLOR 访问 Green 类中的常量。
猜你喜欢
  • 2011-12-18
  • 2013-06-12
  • 2015-06-02
  • 2013-03-20
  • 2013-06-03
  • 2014-01-24
  • 2023-01-25
  • 2018-10-08
  • 2012-11-15
相关资源
最近更新 更多