<?= ?>
Gần đây tôi đã bắt gặp thẻ PHP này và tôi không muốn sử dụng nó, nhưng nó rất khó để tôi muốn bạn sử dụng nó. Tôi biết đó là một thực tế xấu khi sử dụng các thẻ ngắn <? ?>
và thay vào đó chúng ta nên sử dụng các thẻ đầy đủ <?php ?>
, nhưng điều này thì sao : <?= ?>
?
Nó sẽ tiết kiệm một số thao tác gõ và sẽ tốt hơn cho khả năng đọc mã, IMO. Vì vậy, thay vì điều này:
<input name="someVar" value="<?php echo $someVar; ?>">
Tôi có thể viết nó như thế này, sạch hơn:
<input name="someVar" value="<?= $someVar ?>">
Là sử dụng toán tử này nhăn mặt?
echo
rất dễ dẫn đến XSS và tốt hơn là bạn nên dựa vào phương pháp lặp lại dành riêng cho ngữ cảnh (nghĩa là: có function html($x) { echo htmlentities($x,...); }
và không html($someVar);
thay vì echo $someVar
hoặc sử dụng echo json_encode($x);
cho ngữ cảnh JS). Điều này sau đó làm cho <?=
các thẻ trở thành một thông lệ xấu bởi vì điều đó có nghĩa là bạn đã thoát HTML nội dung biến ở một nơi khác và để nơi khác phải biết một cách kỳ diệu biến này phải được thoát HTML vì nó lặp lại trong ngữ cảnh HTML.