Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 碳:创建日期错误,更改日期影响所有变量_Php_Date_Laravel 5_Php Carbon - Fatal编程技术网

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);