Quay lại Trang chủ

Combining String Literals And Variables In PHP

15/12/2025 | Lập trình PHP

Trong PHP, chúng ta có nhiều cách để kết hợp chuỗi và biến. Bài viết này sẽ phân tích các phương pháp và đề xuất cách tốt nhất (Heredoc).

Bài viết gốc: Droptica Blog

Heredoc - Giải pháp tối ưu

Mình đưa ra phương án mà mình thấy tốt nhất là heredoc. Bạn có thể thực hiện code PHP trong dấu {} bên trong heredoc.

<?php
$image = $value['item']['image'];
$image_mobile = $value['item']['image_mobile'];

echo <<<TEXT
<div class="slider-item">
    <div class="item-image">
        <img class="md" src="$image" alt="">
        <img class="sm" src="{$about['title']}" alt="">
    </div>
</div>
TEXT;
?>

Các phương pháp phổ biến

  1. Single quotes with concatenation: 'Variable is ' . $var;
  2. Double quotes: "Variable is {$var}";
  3. Sprintf: sprintf('Variable is %s', $var);
  4. Heredoc (như ví dụ trên).

Tại sao chọn Heredoc?

Heredoc giúp code dễ đọc hơn, tránh việc phải escape dấu ngoặc kép (quote) nhiều lần và cho phép viết HTML block một cách tự nhiên.

So sánh:

Concatenation (Khó đọc):

$str = '<div class="container"><p style="font-size:' . $size . 'px;">' . $text . '</p></div>';

Heredoc (Dễ đọc):

$str = <<<STR
<div class="container">
    <p style="font-size:{$size}px;">$text</p>
</div>
STR;

Kết luận

Sử dụng Heredoc hoặc Double quotes cho các trường hợp đơn giản. Tránh Concatenation quá nhiều vì sẽ gây rối mắt (maintenance nightmare). Sprintf mạnh mẽ nhưng xử lý chậm hơn một chút.