<?php
$a=1;
?>
<?=$a;?>
อะไร<?=
หมายความว่า?
;
ซ้ำซ้อน; เป็นคำตอบที่แนะนำนี้แท็กสั้นขยายไปยังecho
ด้วยเครื่องหมายอัฒภาคเพิ่มลงในท้ายที่สุดตามเอกสาร PHP
<?php
$a=1;
?>
<?=$a;?>
อะไร<?=
หมายความว่า?
;
ซ้ำซ้อน; เป็นคำตอบที่แนะนำนี้แท็กสั้นขยายไปยังecho
ด้วยเครื่องหมายอัฒภาคเพิ่มลงในท้ายที่สุดตามเอกสาร PHP
คำตอบ:
<?php echo $a; ?>
มันเป็นชวเลขเป็น
มันเปิดใช้งานโดยค่าเริ่มต้นตั้งแต่ 5.4โดยไม่คำนึงถึงphp.ini
การตั้งค่า
<?=
สำหรับ<?php echo
would'nt จะเพียงพอ อย่างไรก็ตาม ณ วันนี้ฉันหวังว่าพวกคุณจะไม่มีเซิร์ฟเวอร์ที่ใช้งานจริงที่ใช้งาน PHP <5.6 เนื่องจากรุ่นนี้ไม่ได้รับการบำรุงรักษาอีกต่อไป ( รุ่นที่รองรับ PHP )
short_open_tag = On
เนื่องจากมันจะไม่เพิ่มมูลค่าใด ๆ ที่จะทำซ้ำซึ่งหมายความว่า 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
<?= $a ?>
เหมือนกับ<? echo $a; ?>
เพียงชวเลขเพื่อความสะดวก
ในฐานะของ PHP 5.4.0
<?= ?>
จะสามารถใช้งานได้แม้ว่าจะไม่มีชุด short_open_tag ใน php.ini
นอกจากนี้ตั้งแต่ PHP 7.0, แท็ก ASP:
<%, %>
และแท็กสคริปต์
<script language="php">
จะถูกลบออกจาก PHP
<?=$a; ?>
เป็นทางลัดสำหรับ:
<?php echo $a; ?>
เป็นทางลัด<?php echo $a; ?>
ถ้าshort_open_tag
เปิดใช้งานอยู่ Ref: http://php.net/manual/th/ini.core.php
ฉันหวังว่ามันจะไม่ได้รับการคัดค้าน ในขณะที่การเขียน<? blah code ?>
นั้นไม่จำเป็นเลยและใช้กับ XHTML<?=
ได้ แต่ด้วยเหตุผลที่ชัดเจน น่าเสียดายที่ฉันไม่ได้ใช้เพราะ short_open_tag ดูเหมือนว่าจะปิดการใช้งานมากขึ้นเรื่อย ๆ
อัปเดต:ฉันจะใช้<?=
อีกครั้งในขณะนี้เพราะเปิดใช้งานโดยค่าเริ่มต้นด้วย PHP 5.4.0 ดูhttp://php.net/manual/th/language.basic-syntax.phptags.php