PHP 日期时间 Class opening/closing 标签

PHP DateTime Class opening/closing tags

我正在学习一些教程,遇到了一些我似乎无法理解的事情。一直在寻找它的推理或意义。

只是练习 DateTime class 我遇到了这段代码并尝试了一下。当我使用时,代码不会给我输出。

<?php

它确实在我使用时给我输出。

<?=

我在 PHP 中读到过这种表示法,现在它更像是一种个人偏好。仍然建议使用标准 open/close 标签,因为较旧的 PHP 版本无法理解较新的标签。

所以我的问题简而言之是:为什么 echo 语句中的 DateTime class 只接受 <?= ?> 这个标签来显示一些输出。

<?php

$publishDate = '2014-08-24 09:14:00';

$localDateTime = new DateTime($publishDate, new DateTimeZone('America/New_York'));

$utcDateTime = clone $localDateTime;

$utcDateTime->setTimeZone(new DateTimeZone('UTC'));

?>

<p>The UTC date/time is: <?= $utcDateTime->format("Y-m-d H:i:s") ?></p>
<p>The New York date/time is: <?= $localDateTime->format("Y-m-d H:i:s") ?></p>"

所以 <?php<?= 是两个不同的东西,后者是 shorthand 如果你想用 [= 实现同样的事情,它也使用 echo 12=] 你会做这样的事情:

<?php 

$date = new DateTime();
echo $date->format('Y-m-d H:i:s');

或者在你的例子中:

<p>The UTC date/time is: <?php echo $utcDateTime->format("Y-m-d H:i:s") ?></p>
<p>The New York date/time is: <?php echo $localDateTime->format("Y-m-d H:i:s") ?></p>"

<?= 是一个 shorthand PHP echo 语句,本质上意味着 <?php echo(...

请注意,此标签 不会 与短开放标签混淆:<? - 它是一个完全不同的运算符,从 [=23= 开始] 5.4,"short echo tag"实际上不受short_open_tag设置的影响: http://php.net/manual/en/language.basic-syntax.phptags.php