PHP'de '<? =' Ne anlama geliyor?


Yanıtlar:


230

Bunun için bir kestirme yol <?php echo $a; ?>.

Ayarlardan bağımsız olarak 5,4'ten beri varsayılan olarak etkindir php.ini.


1
Php 7'de mevcut mu?
zachdyer

4
Son noktalı virgülün gerekli olmadığını unutmayın. Ama her nedense, klasik etiketleri geri dönmek gerekir, eğer basit bir proje geneli arama / değiştirme <?=için <?php echoWould'nt yeterli. Neyse bugün ben umarım bu sürümler artık ( PHP Desteklenen Sürümler ) korunmaz gibi PHP <5.6 çalışan herhangi bir üretim sunucuları yok .
TwystO

47

Bunun için bir kestirme yol:

<?php echo $a; ?>

Bunlara kısa etiketler denir; bkz . belgelerdeki 2. örnek .


12
Tüm sunucuların aşağıdaki yanıtta belirtildiği gibi kısa etiketleri desteklemediğini lütfen unutmayın. Sahip olmak için php.ini gerekirshort_open_tag = On
Corey Ballou

17

Bu tekrarlamak için herhangi bir değer eklemek olmaz çünkü echo, PHP tam olarak ne anlama geldiğini görmek istiyorum düşündüm:

Array
(
    [0] => Array
        (
            [0] => 368 // T_OPEN_TAG_WITH_ECHO
            [1] => <?=
            [2] => 1
        )
    [1] => Array
        (
            [0] => 309 // T_VARIABLE
            [1] => $a
            [2] => 1
        )
    [2] => ; // UNKNOWN (because it is optional (ignored))
    [3] => Array
        (
            [0] => 369 // T_CLOSE_TAG
            [1] => ?>
            [2] => 1
        )
)

Bu kodu kendiniz test etmek için kullanabilirsiniz:

$tokens = token_get_all('<?=$a;?>');
print_r($tokens);
foreach($tokens as $token){
    echo token_name((int) $token[0]), PHP_EOL;
}

Gönderen Çözümleyici Dizgeciklerinin listesi , burada ne T_OPEN_TAG_WITH_ECHO bağlantılar olduğunu .


Jeton bana daha fazla ayrıntı söyleyemedi.
user198729


7

PHP <?= ?> 5.4.0'dan itibaren php.ini dosyasında ayarlanan short_open_tag olmasa bile her zaman kullanılabilir.

Ayrıca, PHP 7.0 itibariyle, ASP etiketleri: <%, %> ve komut dosyası etiketi <script language="php"> PHP'den kaldırılır.


6
<?=$a; ?>

şunun için bir kısayoldur:

<?php echo $a; ?>


3

Umarım itiraz edilmez. <? blah code ?>Yazmak XHTML ile oldukça gereksiz ve karışık olsa <?=da, açık nedenlerden ötürü değil. Ne yazık ki kullanmıyorum, çünkü short_open_tag gittikçe daha fazla devre dışı görünüyor.

Güncelleme:<?= PHP 5.4.0 ile varsayılan olarak etkinleştirildiğinden şimdi tekrar kullanıyorum . Bkz. Http://php.net/manual/en/language.basic-syntax.phptags.php

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.