php – 为什么在我执行no-op之前DateTime对象不可用?
发布时间:2020-12-13 22:27:22 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 Why can’t I access DateTime-date in PHP’s DateTime class? Is it a bug?????????????????????????????????????4个 我是PHP的新手.以下错误(?)花了我891723498小时来查找我的代码.有人可以向我解释是什么导致这种情况,也许是一种解决方法
参见英文答案 >
Why can’t I access DateTime->date in PHP’s DateTime class? Is it a bug?????????????????????????????????????4个
我是PHP的新手.以下错误(?)花了我891723498小时来查找我的代码.有人可以向我解释是什么导致这种情况,也许是一种解决方法吗?现在我刚刚离开json_encode()调用. 这是我的代码的简化版本.可能还有其他函数比json_encode()具有相同的效果,我不知道. 这是我的repl的直接复制粘贴(使用Boris php repl – https://github.com/borisrepl/boris). ./bin/boris [1] boris> function broken () { [1] *> $timezone = new DateTimeZone("America/New_York"); [1] *> $datetime = new DateTime("now",$timezone); [1] *> return date_parse($datetime->date); [1] *> } // NULL [2] boris> [2] *> function works () { [2] *> $timezone = new DateTimeZone("America/New_York"); [2] *> $datetime = new DateTime("now",$timezone); [2] *> json_encode($datetime); [2] *> return date_parse($datetime->date); [2] *> } // NULL [3] boris> broken(); PHP Notice: Undefined property: DateTime::$date in /home/sirrobert/Projects/sirrobert/archon/code/repl/boris/lib/Boris/EvalWorker.php(152) : eval()'d code on line 4 // array( // 'year' => false,// 'month' => false,// 'day' => false,// 'hour' => false,// 'minute' => false,// 'second' => false,// 'fraction' => false,// 'warning_count' => 0,// 'warnings' => array( // // ),// 'error_count' => 1,// 'errors' => array( // 0 => 'Empty string' // ),// 'is_localtime' => false // ) [4] boris> works(); // array( // 'year' => 2016,// 'month' => 11,// 'day' => 30,// 'hour' => 16,// 'minute' => 53,// 'second' => 35,// 'fraction' => 0.0,// 'error_count' => 0,// 'errors' => array( // // ),// 'is_localtime' => false // ) [5] boris> 这是来自php -a repl的同样的东西,输出的帮助较少. php > function broken () { php { $timezone = new DateTimeZone("America/New_York"); php { $datetime = new DateTime("now",$timezone); php { return date_parse($datetime->date); php { } php > php > function works () { php { $timezone = new DateTimeZone("America/New_York"); php { $datetime = new DateTime("now",$timezone); php { json_encode($datetime); php { return date_parse($datetime->date); php { } php > php > broken() php > ; PHP Notice: Undefined property: DateTime::$date in php shell code on line 4 php > works(); php > 为什么世界上json_encode($datetime)“实现”$datetime对象? 我最好的猜测是: >当json_encode()中使用$datetime对象时,某些类型的活动正在发生,而不是在为属性访问它时 要么 >我在并行化的内部代码中遇到某种竞争条件? 解决方法
好的,根据提供的评论和链接,看起来这是一个已知的(但没有优先级)问题,每
http://bugs.php.net/bug.php?id=49382和
Why can’t I access DateTime->date in PHP’s DateTime class? Is it a bug?
问题似乎是延迟加载DateTime类,通过直接访问对象的属性显然没有正确触发. 解决方案显然是做我做的(无操作)或做特定的字符串格式化,即使你想要的格式是默认的 – >日期格式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何使用PHP Embed SAPI实现Opcodes查看器
- php – 正确使用时,htmlspecialchars是否足以保护所有XSS?
- 如何使用PHP将多个Import.io搜索引擎连接器组合到一个搜索引
- php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
- php – 如何使用API??创建GitHub Gist?
- 收藏的PHP常用函数 推荐收藏保存
- Android ProgressBar进度条和ProgressDialog进度框的展示DE
- php中将数组存到文件里的实现代码
- PHP中使用CURL实现GET、POST、PUT、DELETE请求
- Junk-Mail Filter 【并查集虚父节点】