<?php
$a=1;
?>
<?=$a;?>
Không gì <?=
có nghĩa là chính xác?
;
là dư thừa; vì các câu trả lời cho thấy thẻ ngắn này mở rộng thành echo
một dấu chấm phẩy được thêm vào cuối, theo các tài liệu php .
<?php
$a=1;
?>
<?=$a;?>
Không gì <?=
có nghĩa là chính xác?
;
là dư thừa; vì các câu trả lời cho thấy thẻ ngắn này mở rộng thành echo
một dấu chấm phẩy được thêm vào cuối, theo các tài liệu php .
Câu trả lời:
Đó là một tốc ký cho <?php echo $a; ?>
.
Nó được bật theo mặc định kể từ 5.4 bất kể php.ini
cài đặt.
<?=
trong toàn dự án đơn giản <?php echo
sẽ không đủ. Dù sao, cho đến hôm nay tôi hy vọng các bạn không có bất kỳ máy chủ sản xuất nào chạy PHP <5.6 vì các phiên bản này không còn được duy trì nữa ( Phiên bản được hỗ trợ của PHP ).
Đây là một tốc ký cho việc này:
<?php echo $a; ?>
Chúng được gọi là thẻ ngắn; xem ví dụ # 2 trong tài liệu .
short_open_tag = On
Vì nó sẽ không thêm bất kỳ giá trị nào để lặp lại ý nghĩa của nó echo
, tôi nghĩ rằng bạn muốn xem chính xác nghĩa của PHP là gì:
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
)
)
Bạn có thể sử dụng mã này để tự kiểm tra:
$tokens = token_get_all('<?=$a;?>');
print_r($tokens);
foreach($tokens as $token){
echo token_name((int) $token[0]), PHP_EOL;
}
Từ Danh sách các Trình phân tích cú pháp , đây là những gì T_OPENiah_WITH_ECHO liên kết đến .
<?= $a ?>
là giống như <? echo $a; ?>
, chỉ viết tắt cho thuận tiện.
Kể từ phiên bản PHP 5.4.0,
<?= ?>
luôn có sẵn ngay cả khi không có short_open_tag được đặt trong php.ini.
Hơn nữa, kể từ PHP 7.0, các thẻ ASP:
<%, %>
và thẻ script
<script language="php">
được xóa khỏi PHP.
<?=$a; ?>
là một phím tắt cho:
<?php echo $a; ?>
Đó là một phím tắt cho <?php echo $a; ?>
nếu short_open_tag
s được kích hoạt. Tham chiếu: http://php.net/manual/en/ini.core.php
Tôi hy vọng nó không bị phản đối. Mặc dù viết <? blah code ?>
là khá không cần thiết và khó hiểu với XHTML, nhưng <?=
không, vì những lý do rõ ràng. Thật không may, tôi không sử dụng nó, bởi vì short_open_tag dường như ngày càng bị vô hiệu hóa.
Cập nhật: Bây giờ tôi sử dụng <?=
lại, vì nó được bật theo mặc định với PHP 5.4.0. Xem http://php.net/manual/en/lingu.basic-syntax.phptags.php