我正在学习一些教程并遇到一些似乎无法解决的问题。一直在寻找它的推理或意义。
刚刚使用DateTime课程,我遇到了这段代码并试了一下。我使用时代码不会给我输出。
<?php
当我使用时它会给我输出。
<?=
我已经在PHP中阅读过这种符号,现在更多的是个人偏好。仍然建议使用标准的打开/关闭标签,因为较旧的PHP版本在理解较新的标签时不可行。
所以我的问题很简单:为什么echo语句中的DateTime类只接受<?= ?>
这个标记来向我显示一些输出。
<?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>"
答案 0 :(得分:2)
<?=
是简写的PHP echo
语句,基本上是<?php echo(...
请注意,此标记不与短开标记混淆:<?
- 它是一个完全不同的运算符,从PHP 5.4开始,“短回声标记”实际上不受short_open_tag
设置的影响:
http://php.net/manual/en/language.basic-syntax.phptags.php
答案 1 :(得分:1)
所以<?php
和<?=
是两个不同的东西,后者是一个速记,如果你想用echo
做同样的事情你也会使用<?php
类似的东西:
<?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>"