Dưới đây là danh sách các câu hỏi phỏng vấn PHP Fresher thường gặp, cùng với câu trả lời chi tiết và ví dụ minh họa.
1. Giải thích sự khác nhau giữa GET và POST trong PHP?
GET: Được sử dụng để gửi dữ liệu đến máy chủ như một phần của URL, có giới hạn về kích thước dữ liệu (~2048 ký tự). Dữ liệu có thể bị nhìn thấy và dễ bị tấn công. GET phù hợp với dữ liệu ít nhạy cảm hơn, như truy vấn tìm kiếm.POST: Dữ liệu được gửi ẩn trong phần thân của yêu cầu HTTP, không bị giới hạn kích thước, bảo mật hơn so với GET. POST được sử dụng cho thông tin bí mật hơn, như thông tin đăng nhập.
Ví dụ:
// GET
echo $_GET['name'];
// POST
echo $_POST['name'];2. Mục đích của lệnh echo trong PHP là gì?
echo dùng để xuất dữ liệu ra màn hình. Đây là một cách phổ biến để hiển thị nội dung động trên trang web.
Ví dụ:
echo "Chào mừng bạn đến với trang web của chúng tôi!";3. include và require trong PHP?
Cả hai include và require đều được sử dụng để nhúng nội dung của một tệp trong một tệp PHP khác. Sự khác biệt chính là:
include: Nhúng file PHP khác vào, nếu file không tồn tại, PHP chỉ đưa ra cảnh báo nhưng chương trình vẫn tiếp tục chạy.require: Giốnginclude, nhưng nếu file không tồn tại, chương trình sẽ dừng ngay lập tức với lỗi fatal.
Ví dụ:
include 'header.php';
require 'config.php';4. isset() dùng để làm gì?
Hàm isset này được sử dụng để xác định xem một biến có được khởi tạo và không phải là NULL. Nó sẽ trả về true nếu biến tồn tại và có giá trị khác null, và ngược lại là false.
Ví dụ:
if (isset($username)) {
echo "Biến tồn tại";
} else {
echo "Biến chưa được khởi tạo";
}5. Session trong PHP?
Session giúp lưu trữ thông tin người dùng trên server trong suốt quá trình làm việc. Hàm session_start() này khởi tạo một session và $_SESSION được sử dụng để lưu trữ và truy xuất các biến session.
Ví dụ:
session_start();
$_SESSION['user'] = "Admin";
echo $_SESSION['user'];6. header() dùng để làm gì?
Chuyển hướng trang hoặc thiết lập thông tin HTTP header.
Ví dụ:
header("Location: home.php");
exit();7. == và === khác nhau như thế nào?
==: So sánh giá trị, không xét kiểu dữ liệu.===: So sánh cả giá trị và kiểu dữ liệu.
Ví dụ:
var_dump(5 == "5"); // true
var_dump(5 === "5"); // false8. foreach dùng để làm gì?
Vòng lặp foreach được sử dụng để duyệt qua từng phần tử của mảng hoặc object các mảng hoặc các đối tượng. Nó đơn giản hóa quá trình duyệt qua từng phần tử mà không cần lập chỉ mục thủ công.
Ví dụ:
$numbers = [1, 2, 3];
foreach ($numbers as $num) {
echo $num;
}9. Function overloading trong PHP?
PHP không hỗ trợ overloading như Java nhưng có thể sử dụng __call() để xử lý.
Ví dụ:
class Test {
function __call($name, $arguments) {
echo "Gọi hàm: $name";
}
}
$obj = new Test();
$obj->run();10. Mục đích của mysqli?
mysqli giúp kết nối và thao tác với MySQL theo cách bảo mật hơn so với mysql cũ. Nó cung cấp giao diện hướng đối tượng và hỗ trợ các câu lệnh đã chuẩn bị, transaction và các tính năng nâng cao khác.
Ví dụ:
<?php
$conn = new mysqli ("localhost", "username", "password", "database");
if ($conn->connect_error) {
die ("Kết nối không thành công: " . $conn->connect_error);
}
echo "Kết nối thành công";
$conn->close();11. Trait trong PHP?
Traits cho phép chia sẻ phương thức giữa các class mà không cần kế thừa.
Ví dụ:
<?php
trait Logger
{
public function log($message)
{
echo "Ghi nhật ký: " . $message;
}
}
class User
{
use Logger;
}
$user = new User ();
$user->log("Người dùng đã tạo");12. array_merge()?
Hợp nhất nhiều mảng lại thành một mảng mới.
Ví dụ:
$a = [1, 2];
$b = [3, 4];
$result = array_merge($a, $b);13. filter_var()?
Dùng để lọc và xác thực dữ liệu đầu vào.
Ví dụ:
$email = "john.doe@example.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Địa chỉ email hợp lệ";
} else {
echo "Địa chỉ email không hợp lệ";
}14. PDO trong PHP?
PDO (PHP Data Objects) giúp kết nối với nhiều loại CSDL và cung cấp prepared statements để tránh SQL Injection.
Ví dụ:
try {
$pdo = new PDO ("mysql:host=localhost;dbname=testdb", "username", "password");
echo "Kết nối thành công";
} catch (PDOException $e) {
echo "Kết nối không thành công: " . $e->getMessage();
}15. Toán tử ? :?
Viết ngắn gọn if-else. Nó có dạng condition ? expr1 : expr2, trong đó nếu điều kiện đúng, nó trả về expr1; nếu không, nó trả về expr2.
Ví dụ:
$age = 20;
$message = ($age >= 18) ? "Bạn là người trưởng thành" : "Bạn là trẻ vị thành niên";
echo $message;
// Output: Bạn là người trưởng thành16. array_push()?
Hàm array_push được sử dụng để thêm một hoặc nhiều phần tử vào cuối mảng. Nó sửa đổi mảng và trả về số phần tử mới trong mảng.
Ví dụ:
<?php
$fruits = ["apple", "banana"];
array_push($fruits, "orange", "grape");
print_r($fruits);
// Output: array([0] => apple [1] => banana [2] => orange [3] => grape)
17. unlink()?
Hàm unlink được sử dụng để xóa một tệp trong PHP. Nó yêu cầu tên tệp làm đối số và trả về true khi thành công hoặc false khi thất bại.
Ví dụ:
18. array_key_exists()?
Hàm array_key_exists được sử dụng để kiểm tra xem một khóa cụ thể có tồn tại trong một mảng hay không. Nó trả về true nếu khóa tồn tại và false nếu không.
Ví dụ:
$array = ["name" => "John"];
if (array_key_exists('name', $array)) {
echo "Key tồn tại";
}19. strlen()?
Trả về độ dài chuỗi.
Ví dụ:
$length = strlen("Hello");
echo $length; // 5Kết luận
Những câu hỏi này bao gồm nhiều khía cạnh khác nhau của PHP và được thiết kế để đánh giá kiến thức và sự hiểu biết của người mới về ngôn ngữ này. Hiểu được những điều cơ bản này là rất quan trọng để xây dựng nền tảng vững chắc trong phát triển PHP.








