Trong khi làm việc với PHP, sẽ có các trường hợp ta cần thiết lập cấu hình tùy chỉnh cho môi trường chạy. Một trong số những cách đó là sử dụng hàm ini_set(). Hàm này cho phép người dùng thiết lập các giá trị cấu hình trong tệp cấu hình của PHP (php.ini) mà không cần chỉnh sửa trực tiếp vào tệp cấu hình. Trong bài viết này chúng ta sẽ tìm hiểu về ini_set() và các thiết lập ini_set() trong PHP.

Bạn muốn trở thành một nhà lập trình PHP chuyên nghiệp? Hãy bắt đầu với cuốn Ebook hữu ích từ Stringee! 

>>> ĐĂNG KÝ NHẬN EBOOK PHP MIỄN PHÍ TẠI ĐÂY:  

1. Giới thiệu về ini_set()

Hàm ini_set() trong PHP cho phép chúng ta thiết lập các giá trị cấu hình trong suốt quá trình thực thi mã PHP.

  • Cú pháp:
<?php
    ini_set('option_name', 'new_value');

Đầu vào:

'option_name': Tên của tùy chọn cấu hình PHP.

'new_value': Giá trị mới cần thiết lập.

2. Cách sử dụng hàm ini_set()

Để sử dụng hàm ini_set() trong PHP chúng ta cần biết tên của tùy chọn cấu hình cần thiết lập. Các tùy chọn trong PHP khá đa dạng, sau đây chúng ta sẽ tìm hiểu một số cấu hình thường dùng trong PHP và giá trị của chúng:

  • error_reporting: Điều chỉnh cấu hình báo lỗi trong PHP

Một số giá trị cấu hình cơ bản:

E_ALL: Báo cáo tất cả các loại lỗi.

E_ERROR: Báo cáo lỗi nghiêm trọng.

E_WARNING: Báo cáo cảnh báo.

E_NOTICE: Báo cáo thông báo.

E_PARSE: Báo cáo lỗi phân tích cú pháp.

E_STRICT: Báo cáo các cảnh báo nghiêm ngặt về chuẩn mã.

E_DEPRECATED: Báo cáo các cảnh báo về việc sử dụng các tính năng

đã lạc hậu.

Và các giá trị khác, bạn có thể xem thêm trong tài liệu PHP.

<?php

    // Thiết lập chế độ hiển thị lỗi

    ini_set(\'error_reporting\', E_ALL);
  • display_errors: Xác định xem lỗi có hiển thị trực tiếp trên

trình duyệt hay không

Một số giá trị cấu hình cơ bản:

'0' hoặc 'off': Không hiển thị lỗi trực tiếp.

'1' hoặc 'on': Hiển thị lỗi trực tiếp.

'stderr': Đẩy lỗi ra luồng lỗi tiêu chuẩn (standard error).

'stdout': Đẩy lỗi ra luồng đầu ra tiêu chuẩn (standard

output).

Và các giá trị khác, bạn có thể xem thêm trong tài liệu PHP.

<?php

    // Thiết lập chế độ hiển thị lỗi

    ini_set(\'display_errors\', \'1\');
  • max_execution_time: Thiết lập thời gian tối đa cho mỗi request

Một số giá trị cấu hình cơ bản:

Một số giá trị nguyên dương như 30, 60, 120,...

-1: Không giới hạn thời gian thực thi.

Và các giá trị khác, bạn có thể xem thêm trong tài liệu PHP.

<?php

    // Thiết lập thời gian thực thi tối đa

    ini_set(\'max_execution_time\', 60);
  • memory_limit: Giới hạn bộ nhớ cho mỗi request

Một số giá trị cấu hình cơ bản:

Ví dụ: '128M', '256M', '512M',...

'128K': 128 kilobytes.

'2G': 2 gigabytes.

Và các giá trị khác, bạn có thể xem thêm trong tài liệu PHP.

<?php

    // Thiết lập giới hạn bộ nhớ

    ini_set(\'memory_limit\', \'128M\');

3.Lưu ý khi sử dụng ini_set()

Mặc dù, việc sử dụng ini_set() cung cấp khả năng tùy chỉnh linh hoạt các cấu hình trong PHP, nhưng đồng thời có một số lưu ý cần nhớ khi sử dụng:

ini_set() chỉ có hiệu lực trong suốt quá trình thực thi mã PHP.

Khi quá trình thực thi kết thúc, các giá trị đã cấu hình sẽ được đặt lại theo tệp cấu hình php.ini (nếu có) hoặc về giá trị mặc định.

Trên một số máy chủ, có thể quyền chỉnh sửa cấu hình PHP bằng

ini_set() sẽ bị hạn chế vì lý do bảo mật. Trong trường hợp này việc sử dụng ini_set() là bất khả thi.

Với khả năng tùy chỉnh linh hoạt việc sử dụng hàm ini_set() nhìn

chung là khá thuận tiện nhưng, cũng có hạn chế về các cấu hình được phép chỉnh sửa với hàm này. Lúc này bắt buộc chúng ta phải chỉnh sửa trong tệp cấu hình php.ini.

4. Tổng kết

Trong bài viết này, chúng ta đã tìm hiểu về hàm ini_set() trong PHP và cách sử dụng nó để thiết lập một số giá trị cấu hình. Với hàm ini_set() cho phép chúng ta điều chỉnh cấu hình trong quá trình thực thi mã PHP mà không cần chỉnh sửa trực tiếp tập cấu hình php.ini. Tuy nhiên, cần lưu ý ini_set() chỉ có quá trình trong quá trình thực thi và không phải cấu hình nào cũng có thể thay đổi bằng cách này. Để biết thêm thông tin về các tùy chọn cấu hình và sử dụng ini_set() hiệu quả, chúng ta nên tìm hiểu thêm trong tài liệu chính thức của [PHP]{.underline}