首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DateInterval属性和isset()

DateInterval属性和isset()
EN

Stack Overflow用户
提问于 2015-05-06 18:21:05
回答 1查看 342关注 0票数 7

在运行一些测试并注意到检查DateInterval对象上的公共属性时,即使它们包含数据,也会返回false。为什么我们在文档中遗漏了这个/什么?

示例:

代码语言:javascript
运行
复制
$currentDate = new DateTime();
$targetDate = new DateTime('2015-03-05 11:11:11');
$interval = $currentDate->diff($targetDate);
var_dump($interval->y);
var_dump($interval->m);
var_dump(isset($interval->y));
var_dump(isset($interval->m));
var_dump($interval);

将提供以下输出:

代码语言:javascript
运行
复制
int(0)
int(2)
bool(false)
bool(false)
object(DateInterval)#3 (15) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(2)
  ["d"]=>
  int(1)
  ["h"]=>
  int(9)
  ["i"]=>
  int(43)
  ["s"]=>
  int(35)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(1)
  ["days"]=>
  int(62)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-06 18:36:20

这绝对是有趣的。看看这个:

代码语言:javascript
运行
复制
$currentDate = new DateTime();
$targetDate = new DateTime('2015-03-05 11:11:11');
$interval = $currentDate->diff($targetDate);
echo "<pre>";
//var_dump($interval); --> if you uncomment this line, it will work just fine
var_dump($interval->y);
var_dump($interval->m);
var_dump(isset($interval->y));
var_dump(isset($interval->m));

在调用var_dump($interval)之前执行isset()打印正确的结果!

代码语言:javascript
运行
复制
object(DateInterval)#3 (15) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(2)
  ["d"]=>
  int(1)
  ["h"]=>
  int(9)
  ["i"]=>
  int(49)
  ["s"]=>
  int(33)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(1)
  ["days"]=>
  int(62)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}
int(0)
int(2)
bool(true)
bool(true)

我想你一定是无意中发现了语言中的其中一个怪癖。与var_dumpisset或PHP实现相关的任何东西,我都无法想象,这会导致这种行为。也许是PHP的bug报告?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30084656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档