Đến nội dung chính
sang.id.vn
Quay lại

Bật strict datatype trong PHP

English

PHP mặc định cho phép truyền string vào chỗ cần int, rồi tự ép kiểu luôn. Nghe tiện nhưng đến lúc debug bug liên quan đến type thì mới biết khổ — lẽ ra nó phải báo lỗi ngay từ đầu.

declare(strict_types=1) làm gì

Thêm dòng này đầu file PHP, PHP sẽ không tự ép kiểu nữa. Hàm cần int mà truyền string vào là throw TypeError luôn.

<?php
declare(strict_types=1);

function add(int $a, int $b): int {
    return $a + $b;
}

echo add(2, 3); // 5
echo add('2', 3); // TypeError: Argument 1 passed to add() must be of the type int, string given

Không có strict types thì lời gọi thứ hai sẽ tự convert '2' thành 2, chạy bình thường và bạn chẳng biết có gì sai. Bật strict types thì nó lỗi ngay — đó là điều mình muốn.

Tại sao nên dùng

Cách dùng


Tham khảo:


Share this post on:

Bài trước
Config MySQL để full-text search tiếng Việt chuẩn chỉnh
Bài tiếp
Trình bày báo cáo tốt nghiệp trên Word — Phần 3: Mẹo và phím tắt