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 に答える