1

让我们说在第一个脚本中,它总是首先执行,我定义了一些东西:

define ('ROOTDIR', dirname(__FILE__));
define ('ROOTDIR_ASSETS', ROOTDIR.'/assets');

现在上课:

class PictureGallery
{
    const PATH = ROOTDIR.'/imgs';

php 说:语法错误,意外的 '.' 期待''或';'。如何解决?

4

2 回答 2

1

类常量是PHP必须的常量表达式。因此,您要么必须define使用完整路径创建另一个 d 常量,要么必须将路径注入到类的构造函数中。或者只是在构造函数中设置。

于 2012-09-10T22:41:44.540 回答
1

您不能使用字符串连接定义类常量。

您需要使用成员变量。如果您不希望更改此设置,我建议将其设为私有并仅创建一个获取器来访问它。

class PictureGallery
{
  private $_path;

  public function __construct()
  {
    $this->_path = ROOTDIR.'/imgs';
  }
  public function getPath()
  {
    return $this->_path;
  }
}

或者

您也可以在定义类之前计算值,但是这是一个混乱的解决方案。

define('IMGDIR', ROOTDIR.'/imgs');
class PictureGallery 
{
  const PATH = IMGDIR;
  ...
}
于 2012-09-10T22:41:48.770 回答