Apa arti '<? =' Dalam PHP?


Jawaban:


229

Ini singkatan untuk <?php echo $a; ?>.

Ini diaktifkan secara default sejak 5.4 terlepas dari php.inipengaturan.


1
Apakah tersedia di php 7?
zachdyer

4
Perhatikan bahwa semi-colon akhir tidak diperlukan. Tetapi jika, untuk alasan apa pun, Anda perlu kembali ke tag klasik, pencarian / penggantian proyek-lebar sederhana <?=untuk tidak <?php echoakan cukup. Pokoknya pada hari ini saya harap kalian tidak memiliki server produksi yang menjalankan PHP <5.6 karena versi ini tidak dikelola lagi ( Versi yang Didukung PHP ).
TwystO

47

Ini adalah singkatan untuk ini:

<?php echo $a; ?>

Itu disebut tag pendek; lihat contoh # 2 dalam dokumentasi .


12
Harap dicatat bahwa semua server tidak mendukung tag pendek seperti yang disebutkan dalam jawaban di bawah ini. Mereka membutuhkan php.ini untuk memilikinyashort_open_tag = On
Corey Ballou

17

Karena itu tidak akan menambah nilai untuk mengulangi artinya echo, saya pikir Anda ingin melihat apa artinya dalam PHP:

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
        )
)

Anda dapat menggunakan kode ini untuk mengujinya sendiri:

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

Dari Daftar Token Parser , inilah tautan T_OPEN_TAG_WITH_ECHO .


Token gagal memberi tahu saya detail lebih lanjut.
user198729


7

Pada PHP 5.4.0, <?= ?> selalu tersedia bahkan tanpa set short_open_tag di php.ini.

Selanjutnya, pada PHP 7.0, Tag ASP: <%, %> dan tag skrip <script language="php"> dihapus dari PHP.




3

Saya harap itu tidak ditinggalkan. Walaupun menulis <? blah code ?>tidak perlu dan membingungkan dengan XHTML, <?=tidak, karena alasan yang jelas. Sayangnya saya tidak menggunakannya, karena short_open_tag tampaknya semakin dinonaktifkan.

Pembaruan: Saya menggunakan <?=lagi sekarang, karena diaktifkan secara default dengan PHP 5.4.0. Lihat http://php.net/manual/en/language.basic-syntax.phptags.php

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.