2009-12-24 122 views
5

什麼這行的意義<?=是什麼意思?

<input type=text name="name" value="<?= $name ?> 

如果我們要聲明爲PHP不應該我們寫<?php instead of <?=

感謝

+1

[PHP中'<?='是什麼意思?](http://stackoverflow.com/questions/2020445/what-does-mean-in-php) – j08691

回答

15

<?=是PHP短開放標籤,其可以經由short_open_tag指令在php.ini(引用)被啓用(或禁用)

此指令也會影響到 速記<?=,這是相同 到<? echo。使用此快捷方式 需要short_open_tagon

和:

如果禁用了,必須使用PHP代碼開始標誌(<?php ?>)的 長格式。

這意味着你的部分代碼:

<input type=text name="name" value="<?= $name ?> 

等效於這一個:

<input type=text name="name" value="<?php echo $name; ?> 

但只有當短開放標籤啓用

而且,作爲旁註:短打開標記並不總是被啓用 - 事實上,它們在最近版本的PHP中被默認禁用。

這意味着不依賴這些應用程序可能是明智的,至少如果您想將應用程序部署在您不是管理員的服務器上。

+0

我同意,依靠短標籤要求在配置爲不允許它們的服務器上部署時發生故障。) –

+0

爲了防禦短標籤,如果您將PHP用作其自己的模板層,它們是非常寶貴的。此外,它可以設置爲PHP_INI_PERDIR - 即在每個應用程序的.htaccess中設置。 –

+1

「<?=」在PHP6和PHP5之後不會被棄用。3「現在總是可用,不管是否有short_open_tag php.ini選項。」 –

3

現在普遍皺起了眉頭,但它仍然是php.ini中的一個選項。沒問題,這只是糟糕的代碼風格,如果你使用多種動態語言,會有一些影響。

+0

更不用說短標籤已被棄用從php6開始 – Matt

+0

考慮到PHP 6還沒有完成(它甚至還沒有在alpha階段),事情可能會改變 - 即使它可能不會用於這個特定的點。 –

+1

PHP6?誰?什麼?哪裏?什麼時候? – gahooa