0

以下返回零长度的字符串:

<?php
print_r(ini_get('short_open_tag'));
?>

在两台 PHP 8 服务器(apache2handler 和 cgi-fcgi)上,我需要知道是否启用了短标签,因为它会与 XML 产生冲突。我不能停止我正在做的一切去看phpinfo()

此代码在两台服务器上的 PHP 7.4 中运行良好。现在,我确实知道短标签被禁用,但我需要能够在服务器升级后快速知道。

我如何ini_get('short_open_tag')重新开始工作?

4

1 回答 1

3

虽然这是一个布尔设置,ini_get但实际上返回一个字符串

注意:查询布尔值时

布尔 ini 值off将作为空字符串或“0”返回,而布尔 ini 值on将作为“1”返回。该函数还可以返回 INI 值的文字字符串。

因此,启用该功能后,它将返回“1”,您可以使用它来检查设置的状态。(尽管该注释中的最后一句话,我从未见过为布尔值返回任何文字值,例如“on”或“off”。)

var_dump(ini_get('short_open_tag'));

启用设置的输出:

string(1) "1"

一点历史:虽然有投票删除这些标签,但它被推翻了。主要问题是服务器升级时会显示给最终用户的遗留代码——这与该设置继续默认为“开”的原因相同,尽管几十年来一直不鼓励使用。在第一个 RFC 崩溃之后,随后提出的将空头打开标签设为错误条件的提案没有获得所需的 2/3 多数通过。

于 2021-05-20T20:52:08.453 回答