伙计,我可以发誓我在某个地方看到了它,这是缩短<?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元素分离。