【发布时间】:2014-11-15 07:43:42
【问题描述】:
我正在经历一些对我来说很奇怪的事情,希望得到第二个意见。
似乎我的日期变量在分配期间应用了“引用”,而它们不应该这样做。
例子:
$date1 = date_create('2014-09-20');
$date2 = $date1;
date_add($date2,date_interval_create_from_date_string("1 month"));
// I would expect this to print "2014-09-20". However it is printing "2014-10-20"
echo date_format($date1,'Y-m-d') . "<br>";
//I would expect this to print "2014-10-20". It does so.
echo date_format($date2,'Y-m-d') . "<br>";
基本上,每当我更改 $date2 时,它也会更改存储在 $date1 中的值。
我疯了吗?这是正确的行为吗?我的编译器有问题吗? php.ini 中有什么?我只是不明白一些非常简单的 PHP 语法概念吗?
我在 IIS 7.5.7600、Windows 7 上使用 PHP 5.3.28。通过 Firefox 32 或任何提升当前版本的工具访问页面# 他们现在已经达到...
我已经尝试过使用“New Datetime”/Add(New DateInterval) 方法和上面示例中的 date_create/date_add 方法。尝试先创建变量,然后分配它们。结果相同。尝试在作业中添加“&”只是为了看看会发生什么。结果一样。
我对相同的模式和使用整数没有任何问题:
$int1 = 1;
$int2 = $int1;
$int2 = $int2 + 1;
echo "$int1 <br>"; //prints 1
echo "$int2 <br>"; //prints 2
它表现得好像在日期变量上有引用/指针,即使没有指定。
感谢您的帮助..
【问题讨论】:
标签: php date pointers reference variable-assignment