我正处于网络开发生涯的婴儿阶段,并且有一个快速的问题。
我有一个变量,我在很多控制器的功能中使用。
$today = new DateTime('today');
我已经读过,声明全局变量是一个很大的不,我想摆脱在每个函数中声明它。
声明此变量并在所有控制器函数中使用它的最佳方法是什么?
答案 0 :(得分:3)
如果这只是您在控制器上使用的内容,则可以在基本控制器中创建它:
<?php
BaseController extends Controller {
protected $today;
public function __construct()
{
$today = new DateTime('now');
}
}
MyController extends BaseController {
public function whatever()
{
echo "today: $this->today";
}
}
如果您在视图中需要这些内容,则可以使用:
View::share('today', new DateTime('now'));
它将适用于您的所有观点:
Today: {{ $today }}
这对我来说没有多大意义,但如果你想在请求之间保留这个变量,你可以使用laravel Session Facade:
Session::put('today', now DateTime('now'));
echo Session::get('today');
除非您确实需要控制会话处理,否则不要使用$_SESSION
。
答案 1 :(得分:0)
您可以使用$_SESSION
变量来存储数据,但仍然可以使用全局。
session_start();
$_SESSION['today'] = new DateTime('today');