'<? =' หมายถึงอะไรใน PHP?


159
<?php

$a=1;

?>
<?=$a;?>

อะไร<?=หมายความว่า?


หมายเหตุด้านข้าง: สิ่งนี้ถูกใช้อย่างกว้างขวางในมุมมอง ASP.NET MVC
โอมาร์


12
โปรดทราบว่า;ซ้ำซ้อน; เป็นคำตอบที่แนะนำนี้แท็กสั้นขยายไปยังechoด้วยเครื่องหมายอัฒภาคเพิ่มลงในท้ายที่สุดตามเอกสาร PHP
ไม่ใช่เพียงแค่ Yeti

คำตอบ:


229

<?php echo $a; ?>มันเป็นชวเลขเป็น

มันเปิดใช้งานโดยค่าเริ่มต้นตั้งแต่ 5.4โดยไม่คำนึงถึงphp.iniการตั้งค่า


1
มันมีอยู่ใน PHP 7 หรือไม่?
zachdyer

4
โปรดทราบว่าไม่จำเป็นต้องใช้เซมิโคลอนสุดท้าย แต่ถ้าด้วยเหตุผลใดก็ตามที่คุณต้องการที่จะกลับไปแท็กคลาสสิกการค้นหาโครงการกว้างง่าย / แทนที่<?=สำหรับ<?php echowould'nt จะเพียงพอ อย่างไรก็ตาม ณ วันนี้ฉันหวังว่าพวกคุณจะไม่มีเซิร์ฟเวอร์ที่ใช้งานจริงที่ใช้งาน PHP <5.6 เนื่องจากรุ่นนี้ไม่ได้รับการบำรุงรักษาอีกต่อไป ( รุ่นที่รองรับ PHP )
TwystO

47

มันเป็นชวเลขสำหรับเรื่องนี้:

<?php echo $a; ?>

พวกเขาเรียกว่าแท็กสั้น ๆ ดูตัวอย่าง # 2 ในเอกสาร


12
โปรดทราบว่าเซิร์ฟเวอร์ทั้งหมดไม่รองรับแท็กสั้น ๆ ดังที่กล่าวไว้ในคำตอบด้านล่าง พวกเขาต้องการ php.ini เพื่อที่จะได้short_open_tag = On
Corey Ballou

17

เนื่องจากมันจะไม่เพิ่มมูลค่าใด ๆ ที่จะทำซ้ำซึ่งหมายความว่า echoฉันคิดว่าคุณต้องการเห็นความหมายใน 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
        )
)

คุณสามารถใช้รหัสนี้เพื่อทดสอบด้วยตนเอง:

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

จากรายการของตัวแยกวิเคราะห์สัญญาณ , นี่คือสิ่งที่เชื่อมโยงไปยัง T_OPEN_TAG_WITH_ECHO


โทเค็นไม่สามารถบอกรายละเอียดเพิ่มเติมให้ฉันได้
user198729


7

ในฐานะของ PHP 5.4.0 <?= ?> จะสามารถใช้งานได้แม้ว่าจะไม่มีชุด short_open_tag ใน php.ini

นอกจากนี้ตั้งแต่ PHP 7.0, แท็ก ASP: <%, %> และแท็กสคริปต์ <script language="php"> จะถูกลบออกจาก PHP




3

ฉันหวังว่ามันจะไม่ได้รับการคัดค้าน ในขณะที่การเขียน<? blah code ?>นั้นไม่จำเป็นเลยและใช้กับ XHTML<?=ได้ แต่ด้วยเหตุผลที่ชัดเจน น่าเสียดายที่ฉันไม่ได้ใช้เพราะ short_open_tag ดูเหมือนว่าจะปิดการใช้งานมากขึ้นเรื่อย ๆ

อัปเดต:ฉันจะใช้<?=อีกครั้งในขณะนี้เพราะเปิดใช้งานโดยค่าเริ่มต้นด้วย PHP 5.4.0 ดูhttp://php.net/manual/th/language.basic-syntax.phptags.php

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.