Chia sẻ Dev

Các câu hỏi thường được hỏi khi phỏng vấn PHP có trả lời và giải thích

Admin
Feb 19, 2025
5 phút đọc
441

PHP là một ngôn ngữ lập trình phổ biến với nhiều tính năng mạnh mẽ, nhưng đôi khi có những logic khó đoán và dễ gây nhầm lẫn. Trong bài viết này, chúng ta sẽ cùng khám phá một số câu hỏi phỏng vấn PHP phức tạp và giải thích chi tiết.

1. Kết quả của đoạn code sau là gì?

php
$array = [1 => "a", "1" => "b", 1.5 => "c", true => "d"];
echo $array[1];

Trả lời:

d

Giải thích:

  • PHP chuyển đổi các key về integer nếu chúng là số.
  • Key 1.5 bị chuyển thành 1.
  • true cũng bị chuyển thành 1, nên ghi đè giá trị trước đó.

2. Kết quả của đoạn code này là gì?

php
$x = true and false;
var_dump($x);

Trả lời:

bool(true)

Giải thích:

  • Toán tử and có độ ưu tiên thấp hơn =.
  • x = true được gán trước, sau đó and false không ảnh hưởng.

3. Kết quả của đoạn code này là gì?

php
$array = array(1, 2, 3, 4, 5);
$array = array_map(function($value) {
    return $value * 2;
}, $array);
echo implode(", ", $array);

Trả lời:

2, 4, 6, 8, 10

Giải thích:

  • array_map nhân từng phần tử trong mảng với 2.

4. Kết quả của đoạn code sau là gì?

php
$number = 3;
echo $number;
echo $number++ + $number++;
echo $number;
echo $number-- - $number--;
echo $number;

Trả lời:

37513

Giải thích:

  • Toán tử hậu tố ++-- trả về giá trị trước khi tăng/giảm.

5. Kết quả của đoạn code sau là gì?

php
$array = [1, 2, 3, 4, 5];
unset($array[2]);
$result = array_values($array);
echo implode(", ", $result);

Trả lời:

1, 2, 4, 5

Giải thích:

  • unset($array[2]) xóa phần tử nhưng không cập nhật index.
  • array_values tạo mảng mới với index liên tiếp.

6. Kết quả của đoạn code sau là gì?

php
$person = 'John ';
$person[10] = 'Smith';
echo $person;

Trả lời:

shell
John      S

Giải thích:

  • PHP mở rộng chuỗi để chứa phần tử thứ 10 và điền khoảng trắng.

7. Kết quả của đoạn code sau là gì?

php
$array = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry'];
unset($array['b']);
$result = array_keys($array);
echo implode(", ", $result);

Trả lời:

a, c

Giải thích:

  • unset($array['b']) xóa key 'b' mà không thay đổi các key khác.

8. Kết quả của đoạn code sau là gì?

php
$array = [1, 2, 3, 4, 5];
foreach ($array as &$value) {
    $value *= 2;
}
unset($value);
$result = array_map(function($v) { return $v - 1; }, $array);
echo implode(", ", $result);

Trả lời:

1, 3, 5, 7, 9

Giải thích:

  • Biến $value là tham chiếu đến phần tử của mảng.
  • Nếu không unset($value), biến này có thể ảnh hưởng đến giá trị tiếp theo ngoài vòng lặp.
  • array_map trừ mỗi phần tử đi 1.

9. Kết quả của đoạn code sau là gì?

php
$count = 7;
while (--$count > 0) {
    $count++;
    echo $count;
    echo "hello";
}

Trả lời:

Vòng lặp vô hạn.

Giải thích:

  • --$count giảm $count trước khi kiểm tra điều kiện.
  • count++ tăng lại giá trị $count, khiến $count không bao giờ xuống 0.
  • Dẫn đến vòng lặp chạy vô hạn.

Kết Luận

Những câu hỏi trên minh hoạ và giải thích những trường hợp thú vị trong PHP. Việc hiểu rõ những trường hợp này sẽ giúp bạn tránh những lỗi sai và viết code tốt hơn!

Toàn Nguyễn
Toàn NguyễnTác giả

Tác giả tại CodeTutHub

Xin chào, mình là Toàn 👋
Là Senior Full-Stack Developer ở HCM, đồng thời là người đứng sau CodeTutHub. Mình viết về những gì mình thực sự dùng hàng ngày — từ Laravel, Next.js, đến cách workflow lập trình với AI agents như Claude Code và Cursor.
Nếu bạn thấy bài này hữu ích, hãy subscribe newsletter hoặc kết nối với mình. Mình luôn sẵn sàng thảo luận về dự án thú vị, cơ hội remote, hoặc đơn giản là chat về tech.
Ho Chi Minh City · Open for collaboration

0 Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!
Đang trả lời
Xoá bình luận

Bạn có chắc muốn xoá bình luận này?
Hành động này không thể hoàn tác.

Thông báo hệ thống
Thông tin