Hướng dẫn fix lỗi Unexpected double-quoted (single-quoted) string trong PHP

Hiện tượng lỗi

Code PHP không chạy, màn hình không xuất kết quả.

Response trả về với Status code là 500 (Server Internal Error)

Error Log hiển thị đối với phiên bản PHP >= 7.0.0

Parse error: syntax error, unexpected double-quoted string ..., expecting "..." or "...." in ... on line ...

hoặc

Parse error: syntax error, unexpected single-quoted string ..., expecting "..." or "..." in ... on line ...

Error Log hiển thị đối với phiên bản PHP < 7.0.0

Parse error: syntax error, unexpected ... T_CONSTANT_ENCAPSED_STRING, expecting ... in ... on line ...

Nguyên nhân lỗi

Bạn thiếu connector (ký tự kết nối) giữa 2 hoặc nhiều chuỗi (string) với nhau. Ví dụ:

echo "Hello world!" "<br/>"; // Lỗi
echo "Hello world!" . "<br/>"; // Đúng . là connector để nối 2 chuỗi với nhau
echo "Hello world!" $html; // Lỗi
echo "Hello world!" . $html; // Đúng

Bạn thiếu separator (ký tự phân chia) giữa các value bên trong một Indexed array. Ví dụ:

$arr = array("Apple", "Orange" "Strawberry"); // Lỗi
$arr = array("Apple", "Orange", "Strawberry"); // Đúng  , là seperator giữa các value bên trong một Indexed array

Bạn thiếu connector (ký tự kết nối) giữa key và value bên trong một Associative array. Ví dụ:

$row = array("name"=>"Jack", "country" "Scotland", "Level" => 9); // Lỗi
$row = array("name"=>"Jack", "country" "Scotland", "Level" => 9); // Đúng => là connector giữa key và value bên trong một Associative array

Cách khắc phục Fix

Bước 1. Xác định vị trí câu lệnh statement chứa lỗi

Bằng thông tin hiển thị trên Error log, ta có thể dễ dàng xác định được vị trí câu lệnh (statement) chứa lỗi.

Ví dụ trường hợp theo ảnh chụp Error log như trên, câu lệnh chứa lỗi sẽ nằm ở dòng 13 của file blog_detail.php

Bước 2. Xác định và bổ sung connector hay separator mà bạn đang thiếu

Bằng việc đối chiếu statement của bạn với những nguyên nhân mà mình đã phân tích bên trên, bạn có thể dễ dàng xác định được code của mình đang thiếu connector hay separator nào. Sau đó, bạn hãy bổ sung nó cho hợp lý.

Bước 3. Lưu code và thử chạy lại



Đăng ký để nhận được thông báo mỗi khi có bài viết mới!