Php 碳:创建日期错误,更改日期影响所有变量
为什么要更改所有变量 如何避免我的变量不改变其值 在我的控制器中Php 碳:创建日期错误,更改日期影响所有变量,php,date,laravel-5,php-carbon,Php,Date,Laravel 5,Php Carbon,为什么要更改所有变量 如何避免我的变量不改变其值 在我的控制器中 public function show() { $inicio = Carbon::createFromFormat('Y-m-d H:i:s',"2016-02-04 11:00:00"); $fin = $inicio; $otro = $fin->addHours(1); return view('horas',array('inicio'=>$inicio,
public function show()
{
$inicio = Carbon::createFromFormat('Y-m-d H:i:s',"2016-02-04 11:00:00");
$fin = $inicio;
$otro = $fin->addHours(1);
return view('horas',array('inicio'=>$inicio,'otro'=>$otro,'fin'=>$fin));
}
我的看法:
<p><b>Inicio: </b> {{$inicio}}</p>
<p><b>Fin: </b> {{$fin}}</p>
<p><b>Otro: </b> {{$otro}}</p>
Inicio:{{$Inicio}
财务:{{$Fin}
Otro:{{$Otro}}
结果
问题出在哪里?这是因为碳物体是可变的 试着克隆他们
public function show()
{
$inicio = Carbon::createFromFormat('Y-m-d H:i:s',"2016-02-04 11:00:00");
$fin = clone $inicio;
$otro = clone $inicio; // not sure why you need this
$fin->addHours(1);
return view('horas',array('inicio'=>$inicio,'otro'=>$otro,'fin'=>$fin));
}
这是因为碳物体是可变的 试着克隆他们
public function show()
{
$inicio = Carbon::createFromFormat('Y-m-d H:i:s',"2016-02-04 11:00:00");
$fin = clone $inicio;
$otro = clone $inicio; // not sure why you need this
$fin->addHours(1);
return view('horas',array('inicio'=>$inicio,'otro'=>$otro,'fin'=>$fin));
}
当您制作
$fin=$inicio
$fin
将始终引用$inicio
,这意味着如果$inicio
更改$fin
将同时更改,这就是对象的工作方式这是面向对象的世界。
请尝试以下方法:
public function show()
{
$inicio = Carbon::createFromFormat('Y-m-d H:i:s',"2016-02-04 11:00:00");
$fin = clone $inicio;
$otro = clone $fin->addHours(1);
return view('horas',array('inicio'=>$inicio,'otro'=>$otro,'fin'=>$fin));
}
当您制作
$fin=$inicio
$fin
将始终引用$inicio
,这意味着如果$inicio
更改$fin
将同时更改,这就是对象的工作方式这是面向对象的世界。
请尝试以下方法:
public function show()
{
$inicio = Carbon::createFromFormat('Y-m-d H:i:s',"2016-02-04 11:00:00");
$fin = clone $inicio;
$otro = clone $fin->addHours(1);
return view('horas',array('inicio'=>$inicio,'otro'=>$otro,'fin'=>$fin));
}
您应更改为以下内容:
$fin = $inicio->copy();
$otro = $fin->copy()->addHours(1);
您应更改为以下内容:
$fin = $inicio->copy();
$otro = $fin->copy()->addHours(1);