Câu hỏi phỏng vấn PHP developer: từ PHP 8, Laravel đến bảo mật và bài test

Cùng là vị trí Lập trình viên PHP (PHP Developer), công ty sản phẩm dùng Laravel và đơn vị làm web WordPress sẽ hỏi hai bộ câu khác nhau. Bài viết gom các câu hỏi phỏng vấn PHP developer theo cấp fresher, middle, senior và theo mảng việc, kèm điều nhà tuyển dụng muốn kiểm tra. Phần bảo mật được tách riêng vì nhiều ứng viên trượt ở đây.

câu hỏi phỏng vấn php developer

Tổng quan nhanh

– Đọc kỹ mô tả công việc giúp bạn đoán bộ câu hỏi thuộc nhánh Laravel hay WordPress.

– Câu nền tảng thường xoay quanh PHP 8, so sánh kiểu dữ liệu, Composer và chuẩn PSR.

– Câu bảo mật nên được trả lời bằng một đoạn code an toàn ngắn thay vì định nghĩa.

– Cấp senior hay bị hỏi về nâng cấp hệ thống PHP cũ, cache, hàng đợi và hiệu năng.

Bốn ý này được triển khai lần lượt bên dưới.

Trước tiên, hãy xác định bạn đang ứng tuyển vào nhánh nào.

1. Đọc JD để đoán bộ câu hỏi bạn sẽ gặp

Thị trường PHP ở Việt Nam có thể chia thành hai nhóm. Công ty sản phẩm và outsource làm hệ thống mới bằng Laravel hoặc Symfony thường hỏi kiến trúc, kiểm thử, hiệu năng. Đơn vị làm web dịch vụ trên WordPress/WooCommerce hoặc bảo trì code thời PHP 5 nghiêng về hook, plugin và code cũ. JD ghi “Laravel, PHPUnit” thì ôn framework, ghi “theme, plugin” thì ôn hook. Để rà lại bức tranh nghề, bạn có thể đọc bài PHP Developer là gì? Kỹ năng cần có và lộ trình thăng tiến.

Một câu ở cả hai nhóm nhưng ít tài liệu nhắc là “Bạn nâng cấp dự án PHP 7.4 lên PHP 8 thế nào?”. Theo trang Supported Versions của php.net, nhánh 8.2 chỉ còn hỗ trợ bảo mật đến hết năm 2026. Ý trả lời nên có: viết test bao phủ trước, dùng PHPStan và Rector dò chỗ không tương thích, rồi nâng từng bước.

2. Nhóm câu nền tảng ngôn ngữ PHP

Đây là vòng lọc cho fresher và junior. Nhà tuyển dụng muốn biết bạn hiểu cách PHP xử lý kiểu dữ liệu hay chỉ gõ theo mẫu. Các tin trong mục việc làm CNTT – phần mềm thường ghi rõ phiên bản PHP và framework trong phần yêu cầu, đó là gợi ý để chọn phần cần ôn.

So sánh và kiểm tra giá trị

Câu `==` và `===` kiểm tra hiểu biết về ép kiểu ngầm: `==` so sánh sau khi chuyển kiểu, `===` so sánh cả kiểu. Từ PHP 8, `0 == “abc”` trả về false thay vì true. Câu `isset`, `empty`, `is_null` hay đi kèm: `isset` trả false khi biến null, `empty` coi `”0″` là rỗng. Khai báo `declare(strict_types=1)` tắt việc tự ép kiểu tham số vô hướng.

Tính năng PHP 8, OOP và Composer

Hãy kể được named arguments, `match`, toán tử nullsafe, `enum` và `readonly`. Với OOP, cần phân biệt interface (hợp đồng), abstract class (chia sẻ code có trạng thái) và trait (tái sử dụng hàm). Ôn thêm autoload PSR-4 của Composer, chuẩn PSR-12 hoặc PER Coding Style, `include` với `require`, session với cookie.

3. Bảng câu hỏi phỏng vấn PHP developer theo cấp

Bảng dưới gom tám câu theo cấp, kèm điều người phỏng vấn muốn kiểm tra. Đây là khung gợi ý, không phải đáp án mẫu. Bạn nên tự diễn đạt bằng trải nghiệm của mình.

Câu hỏi Cấp thường gặp Nhà tuyển dụng muốn kiểm tra gì Ý trả lời nên có
Khác nhau giữa == và === Fresher Hiểu ép kiểu ngầm Ví dụ 0 == “abc” đổi kết quả từ PHP 8
Autoload PSR-4 hoạt động ra sao Fresher, junior Tổ chức dự án bằng Composer Namespace ánh xạ thư mục trong composer.json
Chống SQL Injection thế nào Mọi cấp Viết được code an toàn PDO prepared statements, không nối chuỗi
Vấn đề N+1 trong Eloquent Junior, middle Đọc được số truy vấn sinh ra Eager loading bằng with(), xem log truy vấn
Service container và dependency injection Middle Tách phụ thuộc để dễ test Bind interface, inject qua constructor, mock khi test
Khi nào dùng transaction và index Middle Toàn vẹn dữ liệu và tốc độ Ví dụ trừ kho, dùng EXPLAIN
Nâng cấp PHP 7.4 lên PHP 8 Middle, senior Quản lý rủi ro tương thích Viết test trước, PHPStan, Rector, nâng từng bước
Request thanh toán bị gửi lặp Senior Tư duy idempotency và concurrency Khóa idempotency, khóa bản ghi, hàng đợi

Hãy kèm một tình huống từng gặp, vì người phỏng vấn hay hỏi tiếp “ở dự án nào”.

4. Câu hỏi bảo mật web: phần dễ bị loại

Nhiều ứng viên thuộc định nghĩa lỗ hổng trong OWASP Top 10 nhưng lúng túng khi phải viết code phòng tránh. Người phỏng vấn thường đưa đoạn code nối chuỗi truy vấn rồi hỏi lỗi ở đâu. Hãy chỉ ra lỗi, rồi viết lại vài dòng an toàn ngay tại chỗ.

– Với SQL Injection, bạn viết `$stmt = $pdo->prepare(‘SELECT * FROM users WHERE email = ?’); $stmt->execute([$email]);` thay cho nối chuỗi.

– Với mật khẩu, bạn lưu bằng `password_hash($pass, PASSWORD_DEFAULT)` và kiểm tra bằng `password_verify`, không dùng md5.

– Với XSS, bạn thoát dữ liệu đầu ra bằng `htmlspecialchars` hoặc cú pháp escape mặc định của Blade.

– Với CSRF, bạn giải thích token ẩn trong form và middleware kiểm tra token của Laravel.

Bốn ví dụ này viết được trong vài phút.

Lưu ý khi trả lời câu bảo mật

Đừng nói “framework lo hết rồi” mà không giải thích cơ chế. Người phỏng vấn có thể hỏi tiếp về `DB::raw()` hoặc truy vấn viết tay.

Tiếp theo thường là framework và dữ liệu.

5. Laravel, cơ sở dữ liệu và câu hỏi cấp senior

Với Laravel, câu quen thuộc gồm vòng đời request, middleware, service container, Eloquent và queue. Laravel 13 phát hành tháng 3/2026, yêu cầu tối thiểu PHP 8.3, nên hãy biết dự án cũ của mình chạy bản nào. Symfony thường chỉ hỏi mức nhận biết như bundle, Doctrine. Câu MySQL/MariaDB xoay quanh index, transaction, truy vấn chậm; Redis xuất hiện khi bàn về cache và hàng đợi.

Câu dành cho middle và senior

Middle hay bị hỏi cách viết test bằng PHPUnit hoặc Pest và xử lý exception tập trung. Senior chuyển sang thiết kế: khi nào xóa cache, làm sao tránh hai tiến trình cùng trừ một tồn kho.

Nhánh WordPress và WooCommerce

Với web dịch vụ, hãy ôn action hook với filter hook, cách viết plugin nhỏ và lý do dùng theme con.

câu hỏi phỏng vấn php developer

6. Bài test thực hành và cách chuẩn bị

Bài test phổ biến có hai dạng: viết một API CRUD nhỏ trong thời gian giới hạn, hoặc sửa lỗi trong đoạn code có sẵn. Người chấm thường xem cách đặt tên, tách lớp và kiểm tra đầu vào hơn số tính năng. Nếu không kịp, hãy ghi rõ phần còn thiếu.

Một bài test dở dang nhưng giải thích rõ ràng thường có giá trị hơn một bài chạy được mà không ai hiểu vì sao.

Lời khuyên chuẩn bị trong một tuần

– Bạn nên dựng lại một API CRUD bằng Laravel kèm vài test để luyện tốc độ.

– Bạn hãy viết tay đoạn PDO và password_hash cho tới khi không cần tra cứu.

– Bạn nên chọn một dự án cũ để kể lại cách mình sửa truy vấn chậm.

Ba việc này bao phủ phần lớn vòng kỹ thuật đầu.

Cuối cùng là vài thắc mắc thường gặp.

7. Câu hỏi thường gặp

1. Fresher PHP có cần biết Laravel không? Không bắt buộc, nhưng nhiều JD nhánh sản phẩm có ghi Laravel.

2. Phỏng vấn PHP có hỏi thuật toán không? Có thể có vài bài cơ bản về mảng và chuỗi.

3. Nên ôn PHP 8 đến phiên bản nào? Nên nắm tính năng từ 8.0 đến 8.3 và biết nhánh nào còn được php.net hỗ trợ.

Một buổi phỏng vấn PHP không chỉ đo trí nhớ cú pháp mà còn đo cách bạn xử lý dữ liệu, bảo mật và hệ thống thật. Khi ôn câu hỏi phỏng vấn PHP developer, hãy đọc JD để xác định nhánh Laravel hay WordPress, luyện viết code an toàn ngắn và chuẩn bị một câu chuyện nâng cấp hệ thống. Kết quả mỗi vòng còn tùy yêu cầu doanh nghiệp và năng lực thực tế.

Bài viết mang tính tham khảo; phiên bản PHP, Laravel và yêu cầu tuyển dụng có thể thay đổi, bạn nên đối chiếu tài liệu chính thức và JD của từng doanh nghiệp.

Minh An

Về Tác Giả

CareerLink

Sao chép thành công