我有一个有一些javascript的php页面,并且出于某种原因,'<%...%>'标签在本地和托管方面的行为不同。我页面中相关的代码部分是:
<script>
var options = {
segmentShowStroke: false,
animateRotate: true,
animateScale: false,
percentageInnerCutout: 50,
tooltipTemplate: "<%= value %>%",
responsive: true,
multiTooltipTemplate: '<%= datasetLabel %> - <%= value %>',
labelsFilter: function (value, index) {
return (index + 1) % 5 !== 0;
}
}
在当地,当我使用萤火虫时,我看到了这个(我想看到):
var options = {
segmentShowStroke: false,
animateRotate: true,
animateScale: false,
percentageInnerCutout: 50,
tooltipTemplate: "<%= value %>%",
responsive: true,
multiTooltipTemplate: "<%= datasetLabel %> - <%= value %>",
labelsFilter: function (value, index) {
return (index + 1) % 5 !== 0;
}
}
然而,当我把页面放在我的域名上并使用firebug时,我看到了:
var options = {
segmentShowStroke: false,
animateRotate: true,
animateScale: false,
percentageInnerCutout: 50,
tooltipTemplate: "value%",
responsive: true,
multiTooltipTemplate: "datasetLabel - value",
labelsFilter: function (value, index) {
return (index + 1) % 5 !== 0;
}
}
它看起来像工具提示模板&#39;和&#39; multiTooltipTemplate&#39;正在被托管之前在运行时进行一次评估,这会导致意外结果(硬编码&#39; datasetLabel - 值&#39;而不是类似于&#39; Net Worth - 100,000&#39;
答案 0 :(得分:2)
标签已经改变了不同的PHP版本。你可能在不同的系统上安装了不同的版本。
使用<?php
开场代码,该代码适用于所有版本。
使用php 7删除了以下ASP代码<%
,%>
,<%=
。
7.0.0 ASP标记&lt;%,%&gt; ,&lt;%=和脚本标记将从PHP中删除。
<?=
可用于php 5.4.0
5.4.0无论short_open_tag ini设置如何,标签&lt;?=始终可用。
请参阅PHP tags