在声明PHP类常量时,我​​可以使用storage_path()吗?

时间:2017-09-27 08:34:05

标签: php laravel

我想在PHP类常量中声明并初始化json文件的路径(在方法之外)。但是,看起来我无法在方法之外调用storage_path()函数。

class MainController extends Controller{

    const PATH_TO_JSON_DATA = storage_path().'data/data.json'; // invalid expression

    public function renderPage(){

        dd(storage_path().'data/data.json'); // valid expression

    }
}

是否可以避免初始化方法内的路径?

1 个答案:

答案 0 :(得分:6)

在控制器的构造函数中初始化私有属性的路径。

class MainController extends Controller
{

    private $jsonPath;

    public function __construct()
    {
        $this->jsonPath = storage_path().'data/data.json';
    }

}

根据PHP Manual

  

类常量必须是常量表达式,而不是(例如)a   变量,属性或函数调用。