Php 获取/设置Laravel中类中的全局变量
我不知道如何使全局变量,我可以在未来改变它的值,并得到它一遍又一遍? 我的控制器示例:Php 获取/设置Laravel中类中的全局变量,php,laravel,global-variables,Php,Laravel,Global Variables,我不知道如何使全局变量,我可以在未来改变它的值,并得到它一遍又一遍? 我的控制器示例: public function getProducts() { // some stuff $products = SQLquery; config(['memoProducts' => $products]); $value = config('memoProducts'); dd($value)//returns what I need } public
public function getProducts()
{
// some stuff
$products = SQLquery;
config(['memoProducts' => $products]);
$value = config('memoProducts');
dd($value)//returns what I need
}
public function setProducts()
{
//here I try to get $products from previous function
$value = config('memoProducts');
dd($value)//returns null
}
我有什么问题
附言:谢谢你认为我很笨,整天都在减少我的问题,尽管你的答案似乎都没有帮助。非常感谢有很多方法可以设置和获取全局变量,其中之一就是设置为
config
config(['app.timezone' => 'America/Chicago']);
$value = config('app.timezone', 'fallback value');
并从config
config(['app.timezone' => 'America/Chicago']);
$value = config('app.timezone', 'fallback value');
编辑
在运行时设置的配置值仅为当前请求设置,不会传递到后续请求
所以你可以使用其他技术,比如
或使用
您可以在config文件夹中创建constants.php文件。
return [
'country_name' => env('COUNTRY_NAME','Bangladesh'),
'city_name' => env('CITY_NAME','Dhaka')
];
您可以通过双向方式访问此变量
Config::get('constants.country_name')
config('constants.country_name')
刀片
{{ config('constants.country_name') }}
通过应用程序传递信息的方式多种多样。首先,我们可以使用
config()
进行设置和获取
您可以选择使用session()
获取和设置
您还可以向
request()
对象添加变量,例如request()->global\u var='test'
是的,但是如何更改其值?只需更改配置键config的值(['app.timezone'=>'new value'])代码>我尝试了这个,它在一个函数中工作。但是,当我尝试在一个函数中设置值,然后在同一类的另一个函数中设置值时,我会得到null
确保您使用相同的键来设置值getProducts()
应该在setProducts()
之前调用,以便设置配置键。您可以尝试setProducts(){$this->getProducts();//代码的其余部分
使用config或。env@hafiz.env不应该用于全局变量,它是专门用于环境变量的。它没有太大的全局性。我只需要在同一个类中使用几个变量在函数之间传递数据。您可以按照getter和setter的方式来执行示例:class Foo{private$bar;公共函数getBar(){return$this->bar;}公共函数setBar($bar){$this->bar=$bar;}}$foo=new foo();$foo->setBar(1);$foo->setBar($foo->getBar()+1);我尝试了request()
stuff但它在两个函数之间不起作用说它不起作用一点也不起作用,有错误吗?你到底在哪里使用代码,你没有粘贴任何代码或与问题有关的任何东西。@linktoahref说到这里,我错过了IoC和Singleton,因为我觉得它比newb的要复杂一些伊恩:我会理解的。@伊恩:是的,绝对理解!