Các Câu Hỏi Phỏng Vấn PHP Có Thể Bạn Chưa Biết

PHP là một công cụ tuyệt vời để viết các trang web động. Nó không bị giới hạn sử dụng bởi các nhà phát triển web chuyên nghiệp. Người dùng không rành về kỹ thuật cũng có thể dễ dàng học một vài thủ thuật hữu ích để quản lý trang web của họ dễ dàng hơn, từ đó làm cho chúng hữu ích hơn. Bài viết này sẽ đem đến các câu hỏi phỏng vấn PHP, cùng Glints khám phá thêm nhé! 

Thế nào là một session trong PHP?  

PHP session được sử dụng để lưu trữ và chuyển thông tin từ trang này sang trang khác tạm thời (cho đến khi người dùng đóng trang web).

Kỹ thuật PHP session được sử dụng rộng rãi ở các trang web mua sắm, nơi chúng ta cần lưu trữ và chuyển thông tin giỏ hàng, ví dụ: tên người dùng, mã sản phẩm, tên sản phẩm, giá sản phẩm, v.v. từ trang này sang trang khác.

PHP session tạo id duy nhất cho người dùng với mỗi trình duyệt để nhận diện người dùng và tránh xung đột giữa nhiều trình duyệt.

Giải thích sự khác nhau giữa PHP4 và PHP5 

PHP4 được phát hành vào ngày 22 tháng 5 năm 2000, không hỗ trợ khái niệm oops và sử dụng Zend Engine 1.

PHP5 được phát hành vào ngày 13 tháng 7 năm 2004, hỗ trợ khái niệm oops và sử dụng Zend Engine 2.

Ai là cha đẻ của PHP?  

Rasmus Lerdorf là cha đẻ của PHP; còn Andi Gutmans và Zeev Suraski là những người tạo nên sự phát triển của Zend Engine PHP.

Rasmus Lerdorf đã phát triển PHP vào năm 1994 khi đang làm việc tại Netscape Communications Corporation, và ông vẫn tiếp tục làm việc với dự án này cho đến nay.

Kể tên các hệ thống quản lý nội dung (CMS) sử dụng PHP phổ biến nhất 

  • WordPress: một hệ thống quản lý nội dung (CMS) có mã nguồn mở và miễn phí dựa trên PHP & MySQL. Nó bao gồm một plug-in architecture và hệ thống template. Nó chủ yếu được kết nối với blog nhưng lại hỗ trợ một loại nội dung web khác và  chứa nhiều danh sách, forums (diễn đàn), media displays, cửa hàng trực tuyến.
  • Joomla: hệ thống quản lý nội dung mã nguồn mở miễn phí để phân phối nội dung web, được tạo ra bởi Open Source Matters, Inc. Nó dựa trên khung ứng dụng web model-view-controller, có thể được sử dụng độc lập với CMS .
  • Magento: chương trình thương mại điện tử mã nguồn mở, được tạo bởi Varien Inc., rất có giá trị cho kinh doanh trực tuyến. Nó có thiết kế đo lường linh hoạt và linh hoạt bởi nhiều lựa chọn thay thế hữu ích cho khách hàng. Magento sử dụng quy trình  Thương mại điện tử, cung cấp các thỏa thuận kinh doanh điện tử hiệu quả cho tổ chức và mạng lưới hỗ trợ rộng khắp.
  • Drupal: một nền tảng CMS được phát triển bằng PHP và được phân phối theo GNU (General Public License).

Cho biết sự khác nhau giữa “echo” và “print” trong PHP 

  • PHP echo: một hoặc nhiều chuỗi lệnh. Nó là một cấu trúc ngôn ngữ không phải là một hàm. Vì vậy việc sử dụng dấu ngoặc đơn là không bắt buộc. Nếu bạn muốn truyền nhiều hơn một tham số cho echo thì việc sử dụng dấu ngoặc đơn là bắt buộc.

Cú pháp: void echo (string $ arg1 [, string $ …])

  • PHP print: một chuỗi lệnh. Nó là một cấu trúc ngôn ngữ không phải là một hàm. Vì vậy, việc sử dụng dấu ngoặc đơn là không bắt buộc với danh sách đối số (argument list) . Không giống như Echo, nó luôn trả về 1.

Cú pháp: int print ( string $arg)  

Sự khác nhau giữa $message và $$message trong PHP là gì?

$ message lưu trữ dữ liệu biến trong khi $$ message được sử dụng để lưu trữ biến của các biến.

$ message lưu trữ dữ liệu cố định trong khi dữ liệu được lưu trữ trong $$ message có thể được thay đổi tự động.

Sự khác nhau giữa Session và Cookie là gì?

Sự khác biệt chính giữa Session (Phiên) và Cookie là cookie được lưu trữ trên máy tính của người dùng ở định dạng tệp văn bản, trong khi Session được lưu trữ ở phía máy chủ.

Cookie không thể chứa nhiều biến, mặt khác, Session có thể chứa nhiều biến.

Bạn có thể đặt thời hạn cho cookie theo cách thủ công, trong khi chỉ Session vẫn hoạt động miễn là trình duyệt được mở.

Có bao nhiêu loại lỗi sai trong PHP? Kể tên

Có 3 loại lỗi trong PHP.

  • Thông báo (Notices): Đây là những lỗi không nghiêm trọng. Những lỗi này không được hiển thị cho người dùng.
  • Cảnh báo (Warnings): Đây là những lỗi nghiêm trọng hơn, nhưng chúng không dẫn đến việc chấm dứt tập lệnh. Theo mặc định, những lỗi này được hiển thị cho người dùng.
  • Lỗi nghiêm trọng (Fatal Errors): Đây là những lỗi nghiêm trọng nhất. Những lỗi này có thể gây ra do việc chấm dứt tập lệnh ngay lập tức.

Mảng là gì? Có mấy loại mảng trong PHP?

Mảng (array) là một biến chứa được nhiều phần tử, ở đó ta có thể dễ dàng sắp xếp, lưu trữ, hay xóa bỏ một cách dễ dàng các phần tử trong mảng. Mảng bao gồm hai thành phần là KEYS và VALUES, keys dùng để truy cập vào phần tử của mảng, tại đây ta có thể gán giá trị hoặc lấy giá trị của các phần tử trong mảng. Mảng có ba loại chính là:

  • Mảng tuần tự: là mảng có key tự động tạo là chữ số tăng dần và bắt đầu từ 0.
  • Mảng không tuần tự: là mảng có key mà bạn phải tự định nghĩa bằng các ký tự chữ hoặc số, và key không được sắp xếp bất kỳ thứ tự nào.
  • Mảng đa chiều: mảng có chứa ít nhất là một mảng khác trong đó.

Các chức năng include() và require() là gì

Hàm Include() được sử dụng để đưa dữ liệu của một tệp PHP vào một tệp PHP khác. Nếu lỗi xảy ra, thì hàm Include() tạo ra một cảnh báo, nhưng sẽ không dừng việc thực thi tập lệnh và nó sẽ tiếp tục công việc thực thi tập lệnh đó.

Hàm Request() cũng được sử dụng để đưa dữ liệu của một tệp PHP sang tệp PHP khác. Nếu có bất kỳ lỗi nào, thì hàm Request() sẽ tạo ra một cảnh báo lỗi nghiêm trọng và dừng tập lệnh.

Để chuyển mảng thành chuỗi dùng làm gì? Và ngược lại để tách chuỗi thành mảng dùng hàm gì? 

Trong PHP, để biến các mảng thành một chuỗi ta cần sử dụng hàm Implode(separator,array). Ngoài ra ta còn có thể dùng hàm join($ky_tu,$array) thay thế, tương tự với hàm Implode. 

Ngược lại, để tách các chuỗi thành mảng bạn cần sử dụng hàm explode(separator,string,[limit]). 

Đọc thêm: ASP Net Là Gì? Từ Điển A-Z về ASP.Net Framework Trong Lập Trình

Cookie là gì? Làm thế nào để tạo cookie trong PHP?

Cookie là một bản ghi nhỏ mà máy chủ cài đặt trên máy tính của khách hàng. Chúng lưu trữ dữ liệu về người dùng trên trình duyệt. Nó được sử dụng để xác định người dùng và được nhúng vào máy tính của người dùng khi họ yêu cầu một trang cụ thể. 

Sau khi xác minh danh tính của người dùng ở dạng mã hóa, cookie sẽ duy trì phiên đăng nhập được tạo ở phía sau. Nó phải nằm trong trình duyệt của máy. Bạn chỉ có thể lưu trữ các chuỗi  values not object vì bạn không thể truy cập bất kỳ đối tượng nào trên trang web hoặc ứng dụng web.

Theo mặc định, cookie là URL cụ thể. Ví dụ, các cookie của Gmail không được Yahoo hỗ trợ và ngược lại. Cookie là tạm thời và tạm thời theo mặc định. Mỗi trang chứa 20 cookie có thể được tạo trong một trang web hoặc ứng dụng web. 50 byte là kích thước ban đầu của cookie và 4096 byte là kích thước tối đa của cookie.

Trong PHP, chúng ta có thể tạo cookie bằng cách sử dụng hàm setcookie():

setcookie(name, value, expire, path, domain, secure, httponly);

Ở đây tên là bắt buộc và các tham số còn lại là tùy chọn.

Ví dụ:

setcookie(“instrument_selected”, “guitar”)

Làm thế nào để tạo một cơ sở dữ liệu sử dụng PHP và MySQL

Các bước cần thiết để tạo cơ sở dữ liệu MySQL bằng PHP là:

  • Thiết lập kết nối đến máy chủ MySQL từ tập lệnh PHP của bạn.
  • Nếu kết nối thành công, hãy viết truy vấn SQL để tạo cơ sở dữ liệu và lưu trữ nó trong một biến chuỗi (string variable).
  • Thực hiện truy vấn.

Làm thế nào để tạo API trong PHP?

API là viết tắt của Giao diện lập trình ứng dụng (Application Programming Interface). Nó xác định các hàm và biến. Giao tiếp giữa cơ sở dữ liệu thông qua các phần mở rộng PHP được xử lý bởi API.

Bây giờ, REST API là kiến trúc web sử dụng giao thức HTTP để trao đổi dữ liệu giữa hai chức năng là application hoặc system. Dưới đây là cách tạo API REST trong PHP bằng cách xem xét ví dụ về truy cập dữ liệu từ cơ sở dữ liệu bằng PHP script.

Bước 1 – Tạo cơ sở dữ liệu: Để tạo cơ sở dữ liệu, hãy chạy truy vấn dưới đây:

CREATE DATABASE php test;

Bước 2 – Tạo bảng: Sau khi tạo cơ sở dữ liệu, bạn phải tạo một bảng với dữ liệu giả. Để tạo một bảng, hãy chạy truy vấn đưa ra bên dưới:

CREATE TABLE IF NOT EXISTS `transactions` 

(

   `id` int(20) NOT NULL AUTO_INCREMENT,

   `order_id` int(50) NOT NULL,

   `amount` decimal(9,2) NOT NULL,

   `response_code` int(10) NOT NULL,

   `response_desc` varchar(50) NOT NULL,

   PRIMARY KEY (`id`),

   UNIQUE KEY `order_id` (`order_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;

Bước 3 – Tạo kết nối cơ sở dữ liệu: Tạo tệp db.php và dán kết nối cơ sở dữ liệu dưới đây vào đó. Đảm bảo cập nhật các thông tin xác thực này với thông tin xác thực cơ sở dữ liệu của bạn.

<?php

// Enter your Host, username, password, database below.

$con = mysqli_connect(“localhost”,”root”,””,”phptest”);

if (mysqli_connect_errno())

{

    echo “Failed to connect to MySQL: ” . mysqli_connect_error();

    die();

}

?>

Bước 4 – Tạo tệp REST API: Tạo tệp api.php và sao chép tập lệnh sau vào đó.

<?php

header(“Content-Type:application/json”);

if (isset($_GET[‘order_id’]) && $_GET[‘order_id’]!=””) 

{

include(‘db.php’);

$order_id = $_GET[‘order_id’];

$result = mysqli_query($con,

       “SELECT * FROM `transactions` WHERE order_id=$order_id”);

if(mysqli_num_rows($result)>0)

       {

    $row = mysqli_fetch_array($result);

    $amount = $row[‘amount’];

           $response_code = $row[‘response_code’];

           $response_desc = $row[‘response_desc’];

    response($order_id, $amount, $response_code, $response_desc);

    mysqli_close($con);

}

       else

       {

     response(NULL, NULL, 200,”No Record Found”);

}

}

else

{

response(NULL, NULL, 400,”Request is invalid”);

}

function response($order_id,$amount,$response_code, $response_desc)

{

$response[‘order_id’] = $order_id;

$response[‘amount’] = $amount;

$response[‘response_code’] = $response_code;

       $response[‘response_desc’] = $response_desc;

$json_response = json_encode($response);

echo $json_response;

}

?>

Đoạn mã trên sẽ chấp nhận yêu cầu GET và trả về kết quả đầu ra ở định dạng JSON.

Phân biệt $_POST và $_GET trong PHP

GETPOSTPhương thức GET được sử dụng để yêu cầu dữ liệu từ một tài nguyên cụ thể.POST được sử dụng để gửi dữ liệu đến máy chủ dưới dạng một gói trong một ngôn ngữ riêng biệt với tập lệnh xử lý.Dữ liệu được gửi dưới dạng tham số URL là chuỗi các cặp name-value được phân tách bằng dấu “&”.Dữ liệu được gửi qua phương thức POST sẽ không được nhìn thấy trong URL.Phương thức GET không thể được sử dụng để gửi dữ liệu nhị phân như hình ảnh hoặc tài liệu từ.Phương thức POST có thể được sử dụng để gửi ASCII cũng như dữ liệu nhị phân như hình ảnh và tài liệu văn bản.Phương pháp này không được sử dụng nếu bạn có bất kỳ thông tin nhạy cảm nào, chẳng hạn như mật khẩu được gửi đến máy chủ.Thông tin nhạy cảm có thể được gửi bằng phương pháp này.Nó có thể được sử dụng để gửi biểu mẫu mà người dùng có thể đánh dấu kết quả.Không thể đánh dấu các bài gửi bằng biểu mẫu có POST.Bạn chỉ có thể sử dụng phương pháp này cho dữ liệu không an toàn.Dữ liệu được gửi qua phương pháp này được bảo mật.Phương thức GET không thực sự an toàn vì các tham số có thể được lưu trữ trong nhật ký máy chủ web hoặc lịch sử trình duyệt.Phương pháp POST an toàn hơn GET vì các tham số không được lưu trữ trong nhật ký máy chủ web hoặc lịch sử trình duyệt.

Đọc thêm: Bộ 25 Câu Hỏi Phỏng Vấn Lập Trình Viên HR Nào Cũng Hỏi

Lời kết

Bài viết chỉ mang tính chất tham khảo, Glints hy vọng rằng có thể phần nào giúp các bạn độc giả hiểu hơn về PHP là gì thông qua các câu hỏi phỏng vấn PHP đã được đề cập ở những nội dung trên.  

Tham khảo: PHP Interview Questions

Bài viết có hữu ích đối với bạn?

Đánh giá trung bình 4 / 5. Lượt đánh giá: 1

Chưa có đánh giá nào! Hãy là người đầu tiên đánh giá bài viết.

Chúng tôi rất buồn khi bài viết không hữu ích với bạn

Hãy giúp chúng tôi cải thiện bài viết này!

Làm sao để chúng tôi cải thiện bài viết này?

Tác Giả