而不是输入:
<?php echo $foo; ?>
我看过写的
<?= $foo; ?>
但我经常想知道这样做有什么风险/不切实际?只是好奇。谢谢!
可能重复:
PHP 开放标签“<?=”和“<?php
而不是输入:
<?php echo $foo; ?>
我看过写的
<?= $foo; ?>
但我经常想知道这样做有什么风险/不切实际?只是好奇。谢谢!
在您拥有的地方添加另一个变量var _dialog
,将其命名为var _callback
. 然后在你的Choose
函数中,添加一个参数来获取回调函数并存储它,比如:
Choose: function Choose(f) {
_callback = f;
...
}
然后当你准备好调用回调函数时(我假设这是在 onButtonOK/onButtonCancel 中),调用回调函数使用_callback(parameter);
如果您碰巧将代码移动到short_open_tag
未启用的环境中,您将暴露大量内部变量名称(安全问题)并有大量损坏的输出。
另一个缺点是允许使用的相同设置<?=
与允许您使用 just 打开 PHP 标记的设置相同<?
,因此禁用它不仅会暴露您尝试显示的那些特定变量,还会在短标记中显示任何 PHP 代码.
第二个选项增加了可读性。第一个确保可移植到其他系统。
除此之外,并没有什么区别……
它不是便携式的。有一个 5.4 之前的配置设置可以将其关闭,因此如果您将脚本移动到禁用它的站点,它会中断
此外,我认为它不太明确。<?= func() ?>
和之间的区别<? func(); ?>
很容易忽略,但很重要
只有在运行 PHP 时启用短标签时,才能使用<?
和。<?=
不使用它的实际原因是因为它与 xml 声明不兼容。如果您尝试输出带有 php 扩展名的 xml 并且启用了短标签,则必须执行类似<<??>?
.. 的操作。我想您可以只回显一个字符串。
我不明白所有关于便携性的说法。
总是存在可移植性问题。
不可能有 apache - 所以,不要使用 mod_rewrite。
不可能有 PDO - 所以,不要使用准备好的语句。
不可能有 mysql - 所以,不要使用复杂的查询。
不可能有 PHP - 所以,纯 HTML 是最兼容的格式,因为可移植性问题,永远不要使用其他任何东西!