PHP, kısa etiketler kullanmak kabul edilebilir mi?

24 Cevap php

İşte bilgiler bulunuyor according to the official documentation:

There are four different pairs of opening and closing tags which can be used in PHP. Two of those, <?php ?> and <script language="php"> </script>, are always available. The other two are short tags and ASP style tags, and can be turned on and off from the php.ini configuration file. As such, while some people find short tags and ASP style tags convenient, they are less portable, and generally not recommended.

Benim durumumda en sunucuları do, kısa etiketler etkin olması. Yazma

<?=

yazarak çok daha uygundur

<?php echo 

Programcıları kolaylık önemli bir faktör olduğunu, bu nedenle why onlar tavsiye edilmez?

24 Cevap

Hiç desteklenmeyen (ve bunu etkinleştirebilirsiniz olamaz) nerede bir sunucuya kodunuzu taşımak zorunda eğer bir PİDE çünkü onlar tavsiye ediyoruz. Dediğiniz gibi, paylaşılan ana do destek shorttags ama "çok" çok hepsi değildir. Eğer komut paylaşmak istiyorsanız, tam sözdizimi kullanmak en iyisidir.

I <? ve <?= <?php daha programcılar üzerinde daha kolay ve <?php echo olduğunu kabul ediyorum ama bulmak-ve-bir toplu yapmak mümkün sürece aynı formu her zaman kullanmak (ve örneğin (mekanlarda Abanmam gibi değiştirin: <? php veya <? =)

Ben hiç bir sebep olarak okunabilirliği almayın. En ciddi geliştiriciler sözdizimi kendilerine sunulan vurgulama seçeneği var.

ThiefMaster yorumların bahseder gibi, as of PHP 5.4, <?= ... ?> etiketleri ne olursa olsun shorttags ayarları, her yerde desteklenmektedir . This should mean they're safe to use in portable code but that does mean there's then a dependency on PHP 5.4+. If you want to support pre-5.4 and can't guarantee shorttags, you'll still need to use <?php echo ... ?>.

PHP 5.4 ile başlayarak, yankı kısayol her zaman etkin olacak şekilde, kısa etiketler ayrı bir konudur. Şimdi bir gerçektir:

Yani eko kısayol kendisi (<?=) şimdi kullanmak güvenlidir.

Bütün bu tartışma ile sorun bir çiftleşmiş dili olarak PHP kullanımı yatıyor. Hiç kimse etiket uygulaması kaynak dosyalarında kullanılması gerektiğini savunuyor.

Ancak PHP'nin gömülebilir sözdizimi güçlü bir şablon dili olarak kullanılmasına izin verir, ve şablonlar mümkün olduğunca basit ve okunabilir olmalıdır. Birçok kolay add-on Smarty gibi motoru çiftleşmiş, çok daha yavaş kullanmak için, ama hızlı render ve saf kod tabanı talep aramızda olanlar titiz, PHP şablonlar yazmak için tek yoldur bulduk.

Kısa etiketleri kullanımı KARŞI SADECE geçerli bir argüman hepsi sunucularında desteklenir olmasıdır. Muhtemelen yine PHP ve XML karıştırma olmamalı, çünkü XML belgeleri ile çatışmalar hakkında yorumlar, gülünç; Eğer varsa ve siz metin çıktı dizelerine PHP kullanıyor olmalıdır. Eğer şablon dosyaların içindeki veritabanı erişimi kimlik bilgileri gibi hassas bilgileri koyarak iseniz, çok daha sonra, daha büyük sorunları var, çünkü güvenlik, bir sorun asla!

Şimdi o zaman, sunucu destek sorunu olarak, kuşkusuz bir hedef platformu farkında olmak zorundadır. Barındırma paylaşılan olası bir hedef ise, o zaman, kısa etiketler kaçınılmalıdır. Ama (kendim gibi) pek çok profesyonel geliştiriciler için, istemci biz sunucu gereksinimleri dikte olacağını (ve aslında, aslında bağlıdır) kabul eder. Genellikle ben sunucuyu kendim kuruyorum ben sorumluyum.

Ve bize sunucu yapılandırma mutlak kontrolünü vermeyen bir hosting sağlayıcısı ile çalışmak ASLA - Böyle bir durumda biz sadece kısa bir etiket desteği kaybetmekten çok daha fazla sorun çalıştıran saymak olabilir. Bu sadece olmaz.

Yani evet - ben kısa etiketleri kullanımı dikkatle tartılması gerektiğini kabul ediyorum. Ama aynı zamanda sıkıca DAİMA bir seçenek olması gerektiğine inanıyoruz ve onun çevre bilincinde bir geliştirici bunları kullanmak için çekinmeyin gerektiğini söyledi.

Kısa etiketler Zend Framework "PHP as a template language" kendi default MVC configuration iterek geri sayesinde geliyor. Ben size ömür boyu üretecek yazılımların çoğu sizin veya şirket kontrol edecek bir sunucu üzerinde çalışacağı, tartışma hakkında ne görmüyorum. Sürece tutarlı kendinizi tutmak gibi, herhangi bir sorun olmamalıdır.

UPDATE

Magento, uzun form kullanır hangi ile iş biraz yaptıktan sonra. Sonuç olarak, uzun forma açık ettik:

<?php and <?php echo

üzerinde

<? and <?=

Birlikte çalışabilirliği sağlamak için iş küçük bir miktar gibi görünüyor.

Karışıklık, XML bildirimleri ile üretebilirsiniz çünkü. Birçok kişi agree with, olsa da.

Ek bir endişe sadece son sunucu barındırma onları kapalı olan sonunda bulmak için kısa etiketleri ile her şeyi kod oluşturmak istiyorum ağrı ...

Sonra aynı mükemmel akış diyagramıdır:

alt = "

Source: similiar question on Programmers Stack Exchange

: http://uk3.php.net/manual/en/language.basic-syntax.phpmode.php dahil olmak üzere, tavsiye bol

while some people find short tags ve ASP style tags convenient, they are less portable, ve generally not recommended.

ve

note that if you are embedding PHP within XML or XHTML you will need to use the <?php ?> tags to remain compliant with stveards.

ve

Using short tags should be avoided when developing applications or libraries that are meant for redistribution, or deployment on PHP servers which are not under your control, because short tags may not be supported on the target server. For portable, redistributable code, be sure not to use short tags.

5.4.0 Alpha 1 <?= her zaman mevcuttur PHP gibi durumlarda herkes hala ... Bu dikkat ediyor:

http://php.net/releases/NEWS_5_4_0_alpha1.txt

Kısa etiketler (a) kabul edilebilir ve (b) burada kalmak gibi Öyle görünüyor. En azından şimdilik ...

  • Kısa etiketler (vb paylaşılan bilgisayarlar,) bazı sunucularında varsayılan olarak açık, böylece bu birine taşımak gerekiyorsa code portability bir sorun haline değildir.

  • Readability, bazıları için bir sorun olabilir. Eğer bir dosyayı tararken Birçok geliştirici bir kod ile sıkışmış konum, özellikle eğer, o <?php <? daha kod bloğunun başında daha belirgin bir belirteç olarak göze çarpan bulabilirsiniz HTML ve PHP ile taban sıkı arası dokunmuş.

CodeIgniter kısa etiketlerini kullanarak teşvik eder, ama bunun için iyi bir nedeni var - sen onu açtığınızda tam <?php etiketleri kısa etiketleri yeniden bir yapılandırma seçeneği var.

Bu suçluluk ücretsiz, güvenli bilgi daha sonraki bir tarihte bir sunucu hareket varsa kolayca taşınabilir olduğunu, bu seçeneği kullanmak anlamına gelir.

Not: PHP 5.4 kısa etiketi başlayarak, <?=, her zaman kullanılabilir şimdi.

Şunu kabul edelim. PHP kısa etiketleri olmadan cehennem gibi çirkin.

Eğer php.ini alınamıyor eğer bir .htaccess dosyası bunları etkinleştirebilirsiniz:

php_flag short_open_tag on

Ben konu hakkında bilgi için baktıktan sonra bu sayfayı okuyun ve ben bir büyük sorun söz edilmediğini hissediyorum: tutarlılık vs tembellik. PHP için "gerçek" etiketleri Vardır. Neden? Gerçekten umurumda değil. Neden bu PHP için açıkça zaman başka bir şey kullanmak isteyeyim? <% Ve%> Benim için ASP demek ve