讓我們在第一個腳本,它總是先執行說,我定義的東西:在php中,如何在const中設置define-d值?
define ('ROOTDIR', dirname(__FILE__));
define ('ROOTDIR_ASSETS', ROOTDIR.'/assets');
現在一類:
class PictureGallery
{
const PATH = ROOTDIR.'/imgs';
PHP說:語法錯誤,意外 ''期待''或';'。 如何解決它?
讓我們在第一個腳本,它總是先執行說,我定義的東西:在php中,如何在const中設置define-d值?
define ('ROOTDIR', dirname(__FILE__));
define ('ROOTDIR_ASSETS', ROOTDIR.'/assets');
現在一類:
class PictureGallery
{
const PATH = ROOTDIR.'/imgs';
PHP說:語法錯誤,意外 ''期待''或';'。 如何解決它?
你不能有一個用字符串連接定義的類常量。
您將需要使用成員變量。如果你不希望這個改變,我會建議把它變成私人的,只有創建一個getter來訪問它。
class PictureGallery
{
private $_path;
public function __construct()
{
$this->_path = ROOTDIR.'/imgs';
}
public function getPath()
{
return $this->_path;
}
}
OR
你也可以定義類之前計算的值,然而,這是一個混亂的解決方案。
define('IMGDIR', ROOTDIR.'/imgs');
class PictureGallery
{
const PATH = IMGDIR;
...
}
Class constants is PHP must be a constant expression。因此,您必須使用完整路徑創建另一個define
d常量,或者您必須將路徑注入到類的構造函數中。或者直接在構造函數中設置。
我已經用示例更新了我的答案。 –