实例化 DateTime PhP 对象后无法立即应用函数

Unable to apply function right after instanctiation of a DateTime PhP object

我尝试使用 DateTime::.

提取字符串日期的年份

我不明白为什么 DateTime 的以下实例化会引发错误:

$myDate = "2015-09-10";

$year_myDate = new DateTime($myDate)->format("Y");

知道这个确实有效:

$myDate = "2015-09-10";

$dateTime_myDate = new DateTime($myDate);

$year_myDate = $dateTime_myDate->format("Y");

对象 return 不是它自己的一个实例吗?那么为什么我们不能在实例化后立即使用这个 class 的方法呢?

你可以,你只需要将你的实例化到括号中,例如

$year_myDate = (new DateTime($myDate))->format("Y");
               ↑                     ↑

注:

  • 这适用于 PHP >= 5.4 dereferencing
  • $year_myDate,不会包含 DateTime 的实例,只是一个字符串(return 来自 DateTime::format()