声明php类常数时,我可以使用storage_path()



我想在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
    }
}

是避免初始化方法内路径的方法吗?

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

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

根据PHP手册:

类常数必须是恒定的表达式,而不是(例如) 变量,属性或功能调用。

最新更新