gpt4 book ai didi

未找到 PHP 类 DateTime

转载 作者:IT王子 更新时间:2023-10-29 00:09:58 24 4
gpt4 key购买 nike

PHP 5.3.8

中声明 DateTime 对象时遗漏了一些内容

我得到一个带有确定日期时间的 JSON 字符串,它被传递给我的 php Controller 。

由于某种原因,我没有将它映射为 php 中的 DateTime 对象。但是有点奇怪。请看以下图片:

  1. 正如您在表达式窗口(右上角)中看到的那样,在这一步之前,我正在检查 new DateTime(myVariable) 是否正确地带来并转换了我需要的东西。在第一个 watch 中,要传递给 DateTime 构造函数的变量。在第二个 watch 中,表达式 newDateTime(myVariable) 已经映射为 DateTimeObject。到这里为止显然没问题。

    enter image description here

  2. 但是,遗憾的是,当我继续按 F6 时,会抛出以下豁免(另见下图):

    Fatal error: Class 'Acme\StoreBundle\Repository\DateTime' not found in /Users/pgbonino/Sites/Symfony/src/Acme/StoreBundle/Repository/HistoryRepository.php on line 19

    Call Stack:
    0.0201 693568 1. {main}() /Users/pgbonino/Sites/Symfony/web/app_dev.php:0
    0.0267 2106576 2. Symfony\Component\HttpKernel\Kernel->handle(???, ???, ???) /Users/pgbonino/Sites/Symfony/web/app_dev.php:24
    0.0377 2649176 3. Symfony\Bundle\FrameworkBundle\HttpKernel->handle(???, ???, ???) /Users/pgbonino/Sites/Symfony/app/bootstrap.php.cache:547
    0.0378 2650832 4. Symfony\Component\HttpKernel\HttpKernel->handle(???, ???, ???) /Users/pgbonino/Sites/Symfony/app/cache/dev/classes.php:4879
    0.0378 2650832 5. Symfony\Component\HttpKernel\HttpKernel->handleRaw(???, ???) /Users/pgbonino/Sites/Symfony/app/cache/dev/classes.php:3875
    0.1574 5562232 6. call_user_func_array(???, ???) /Users/pgbonino/Sites/Symfony/app/cache/dev/classes.php:3905
    0.1574 5562600 7. Acme\StoreBundle\Controller\HistoryController->saveTestAction() /Users/pgbonino/Sites/Symfony/app/cache/dev/classes.php:3905
    0.1694 5739032 8. Acme\StoreBundle\Repository\HistoryRepository->saveTestInHistory(???, ???) /Users/pgbonino/Sites/Symfony/src/Acme/StoreBundle/Controller/HistoryController.php:33

    enter image description here

所以,奇怪的是,Eclipse 中的 Watch Expressions 窗口不像执行引擎那样工作,反之亦然。

当然,我希望它是相反的(它在执行而不是在监 window 口中起作用:))。

那么,有什么想法吗?

最佳答案

您当前位于 Acme\StoreBundle\Repository\DateTime 空间。在这种情况下,要寻址到默认命名空间,您需要将前导 \ 放在类名之前,例如

$dt = new \DateTime(...);

所以

namespace foo;
$obj = new class();

将尝试在 foo 命名空间中查找 class 定义。

namespace foo;
$obj = new \class();

将尝试在全局命名空间中查找 class 定义。

作为替代方案,您可以使用导入类

use \DateTime;

或创建别名(如果您在当前 NS 中已经有同名的类):

use \DateTime as NewDT;

关于未找到 PHP 类 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10841960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com