PHP模板方法<=$var>;


PHP templating method <?=$var?>?

伙计,我可以发誓我在某个地方看到了它,这是缩短<?php echo $var ?>构造的有用语法,我认为它是<?=$var?>,但它不起作用。我已经搜索了大约半个小时,但再也找不到告诉我这件事的网站,我也找不出正确的语法。

我是幻觉还是真的有这样的语法?

<div style="background-color:<?=$backgroundColorFromPhp?>">
    Hello <?=$name?>!
</div>

PHP在PHP.ini中有short_open_tag指令,该指令启用以下语法:

<? PHP code here; ?>

与CCD_ 4相反。

它还启用

<?= variable ?>

作为CCD_ 5的简写。文档注意到,从PHP 5.4.0开始,无论short_open_tag设置如何,都将启用<?=

asp_tags非常相似。它启用了经典的ASP风格语法:

<% PHP code here; %>
<%= variable %>

这就是echo简写语法最初的来源。旁注:在经典的ASP中,<%= ...将取代相当冗长的形式:

<% Response.Write variable %>

启用short_open_tag时,

<?= $backgroundColorFromPhp ?>

是的快捷方式

<?php echo $backgroundColorFromPhp; ?> 

但是,如果short_open_tag被禁用,

<?= $backgroundColorFromPhp ?>

也将被禁用(在PHP 5.4之前)。

是的,这是正确的,但有一些注意事项。

首先,你必须有短标签。根据我的经验,这是默认配置,正如上面的文档所指出的;

其次,您需要通过PHP解析该文件。如果该文件是.html文件,则php引擎不会自动解析该文件。您需要以某种方式运行它,或者告诉php默认读取.html文件。

最后,我喜欢在其中加入end statement分号(使其成为<?=$name;?>),但我相信这是一个偏好点。

php上确实有这样的语法,只有当你设置服务器使其工作时,它才会工作——这被称为简写,但强烈建议使用这种技术,因为有些服务器上禁用了这种技术,错误使用时可能会提供一些未识别的错误。我想我第一次看到这是在wordpress上使用的。)

您要做的事情应该按照以下进行

     <div style="background-color:<?=$backgroundColorFromPHP ?>">
          Hello <?=$name ?>!
    </div>

简而言之,在最后一个?标记之前的后面留一个空格

请严格避免回显您的html内容。那简直是一种糟糕的风格。始终保持php代码的动态与html元素分离。