常に最初に実行される最初のスクリプトで、何かを定義したとしましょう。
define ('ROOTDIR', dirname(__FILE__));
define ('ROOTDIR_ASSETS', ROOTDIR.'/assets');
今クラス:
class PictureGallery
{
const PATH = ROOTDIR.'/imgs';
PHP の発言: 構文エラー、予期しない '.' ' ' または ';' が必要です。それを回避する方法は?
常に最初に実行される最初のスクリプトで、何かを定義したとしましょう。
define ('ROOTDIR', dirname(__FILE__));
define ('ROOTDIR_ASSETS', ROOTDIR.'/assets');
今クラス:
class PictureGallery
{
const PATH = ROOTDIR.'/imgs';
PHP の発言: 構文エラー、予期しない '.' ' ' または ';' が必要です。それを回避する方法は?
クラス定数は、PHP は定数式でなければなりません。したがってdefine
、フル パスで別の d 定数を作成するか、パスをクラスのコンストラクターに挿入する必要があります。または、コンストラクターで設定するだけです。
文字列連結でクラス定数を定義することはできません。
メンバー変数を使用する必要があります。これを変更したくない場合は、プライベートにして、アクセスするためのゲッターのみを作成することをお勧めします。
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;
...
}