我想在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
}
}
是否可以避免初始化方法内的路径?
答案 0 :(得分:6)
在控制器的构造函数中初始化私有属性的路径。
class MainController extends Controller
{
private $jsonPath;
public function __construct()
{
$this->jsonPath = storage_path().'data/data.json';
}
}
根据PHP Manual:
类常量必须是常量表达式,而不是(例如)a 变量,属性或函数调用。