当前位置: 首页 > 面试题库 >

是否可以使用PHP短标签?

邓令
2023-03-14
问题内容

这是根据官方文档提供的信息:

在PHP中可以使用四对不同的开始和结束标记。其中的两个<?php?><scriptlanguage="php"></script>始终可用。另外两个是短标签和ASP样式标签,可以从php.ini配置文件中打开和关闭。因此,尽管有些人发现短标签和ASP样式标签很方便,但它们的可移植性较差,
通常不建议这样做

以我的经验,大多数服务器 确实 启用了短标签。打字

<?=

比打字要方便得多

<?php echo

程序员的便利性是一个重要因素,那么 为什么 不推荐他们呢?


问题答案:

不建议使用它们,因为如果您不得不将代码移动到不支持它的服务器上(并且无法启用它),则它是PITA。就像您说的那样,许多共享主机 确实
支持短标记,但“批”并不是全部。如果要共享脚本,最好使用完整语法。

我同意这一点,<?并且<?=在程序员上比<?php和更容易,<?php echo但是只要您每次使用相同的表单(并且不要在空格(例如:<? php<? =)中夹住),就可以进行批量查找和替换。

我完全不将可读性作为理由。大多数认真的开发人员可以选择语法突出显示。

正如ThiefMaster在评论中提到的那样,从PHP5.4开始<?=...?>,无论shorttags设置如何,标记在任何地方都受支持。这应该意味着它们在可html" target="_blank">移植代码中可以安全使用,但这确实意味着对PHP
5.4+的依赖。如果您想支持5.4之前的版本并且不能保证使用短标记,则仍然需要使用<?php echo ... ?>

另外,您需要知道 ASP标记 <%,%>,<%=和脚本标记已从PHP7中删除。因此,如果您想支持长期的可移植代码,并且想要切换到最现代的工具,请考虑更改该部分代码。



 类似资料:
  • 问题内容: 我一直在使用TwitterBootstrap构建网站,其许多功能都依赖于将内容包装在中,即使它们只是执行Javascript也是如此。我在Bootstrap文档所建议的策略上遇到了问题,因此我试图寻找其他解决方案。 但是后来我尝试完全删除该属性。我一直在使用,并让Javascript处理其余部分。而且有效。 但是有件事告诉我我不应该这样做。对?我的意思是,从技术上讲,它应该是某事的链接

  • 问题内容: 我想使用Streams.intRange(int start,int end,int step)实现反向排序的流。但是,似乎java.util.Streams类不再可用(但是它仍在标准库的rt.jar中)。此方法是在其他类中还是被其他方法替代? 问题答案: 实际上,JDK中再也没有这种方法了。您能获得的下一个最接近的位置是,但是只会一步一步走。 一种解决方案是实施您自己的解决方案。例如

  • AccessibilityService在系统的内存管理方面与普通服务有何不同? 我想问的是:系统可以为了节省内存而关闭AccessibilityService吗?如果可以,当您进入AccessibilityService时,您会看到它打开还是关闭?用户是否必须再次手动打开? 使用startForeground是否有助于使AccessibilityService保持活动状态? 在一个类似的问题中,

  • 问题内容: 他们的安全性是否相等?我被告知使用 安全性较低,并且会减慢页面加载时间。我严格偏向使用echo。 优点/缺点是什么? 问题答案: 和称为短开放标记,并不总是在PHP 5.3或更低版本中启用(请参阅指令)(但自PHP 5.4.0起,始终可用)。 实际上,在PHP 5.3.0随附的php.ini-production文件中,默认情况下禁用它们: 因此,在要分发的应用程序中使用它们可能不是一

  • 问题内容: 我将请求发布到服务器并获得JSON格式的回复。我可以将其解组为一个结构。然后,我需要使用相同的数据但使用不同的JSON标签创建一个新的JSON文件。 例: 在以下代码中,我从服务器获取并将其解组到struct : 然后我需要将标签更改为并省略: 之后,我将修改后的数据发送到另一台服务器。 我知道我可以创建一个新的并将所有数据复制到其中,但是有很多字段。我想知道是否有办法像这样附加多个J

  • 问题内容: 如果尝试,它将下载已解决的页面。但是我想下载原始脚本。这可能吗? 问题答案: 不用了,谢谢你。服务器完全控制它如何响应HTTP请求。 严格来说,首先您不能确定它的另一端是否是PHP。