2012-09-10 35 views
1

讓我們在第一個腳本,它總是先執行說,我定義的東西:在php中,如何在const中設置define-d值?

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

現在一類:

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

PHP說:語法錯誤,意外 ''期待''或';'。 如何解決它?

回答

1

你不能有一個用字符串連接定義的類常量。

您將需要使用成員變量。如果你不希望這個改變,我會建議把它變成私人的,只有創建一個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; 
    ... 
} 
+0

我已經用示例更新了我的答案。 –