什么是PHP语法“<! - ?=” - >

时间:2011-09-11 02:49:48

标签: php tags

阅读一些PHP代码,我无法理解:

的用法

<?=

我理解php标签的使用:

<?php<?

我正在阅读的确切用法是:

<?=$form->hidden('mode',$mode); ?>

其中$ form是一个对象的新实例化类,“隐藏”一个类方法。所有这一切都被理解,但当我在它之间放置一个空间时?和= <?=我收到错误:

Parse error: syntax error, unexpected '=' in /home/...

我在google或php.net上找不到任何关于语法的内容。

任何帮助都将不胜感激。

8 个答案:

答案 0 :(得分:2)

这是echo的捷径。这样的事情(其中expr是任何表达式):

<?= expr ?>

在功能上等同于:

<?php echo expr; ?>

建议不要使用此语法,因为某些服务器上未启用此语法。 (如果有人使用共享主机,他们可能无法重新启用它)

关于它的PHP文档是here

答案 1 :(得分:1)

<?=<?php echo的简写。不再推荐使用它,显然是因为解析器有些含糊不清或与某些PHP版本不兼容,尽管我仍然在像Drupal这样的大型项目中看到它。

编辑:他们被称为“短标签”,并且可以在此处找到关于是否应该使用它们的讨论:Are PHP short tags acceptable to use?

答案 2 :(得分:1)

它被称为short open tag。如果它在您的服务器上启用,那么您可以使用它。

来自PHP手册:

  

这个指令也影响了PHP 5.4.0之前的简写<?=   与<? echo相同。使用此快捷方式需要short_open_tag   继续。自PHP 5.4.0起,<?=始终可用。

使用这些类型的标签可以获得与使用echo相同的结果。以下示例是等效的。

示例:

<?php echo $text; ?>
<?= $text; ?>

答案 3 :(得分:1)

简而言之,“短暂打开的标签”很糟糕。如果你的php.ini / httpd.conf / .htaccess中有short_open_tags,你试图将XML标签放入你的文档,就像这样...

<?xml version="1.0" encoding="iso-8859-1"?>

PHP会认为你试图写一些PHP,错误和死亡。你最终不得不这样做

<?php echo '<?xml version="1.0" encoding="iso-8859-1"?>'; ?>

答案 4 :(得分:0)

启用<?=后,

short_tags<?php echo的简写。

这包括right at the start of the PHP manual

答案 5 :(得分:0)

例如,当您在HTML文件中时,快速打印内容的简写。建议不要使用它,因为它已被弃用。

答案 6 :(得分:0)

&lt;?=这里的东西;?&gt;这是&lt;?php echo stuff的缩写;?&gt;

http://mattsblog.ca/2007/07/26/tip-of-the-day-php-shorthand/

答案 7 :(得分:0)

这是一个短标记,无法在所有服务器上使用。

<?=<?php echo

相同

<?=中添加空格会使短标记无效,这就是您收到错误的原因。