Hướng dẫn php don t use empty - php không sử dụng rỗng

Tôi nhận ra rằng tôi rất nghiêm ngặt về việc sử dụng chức năng trống PHP trong đánh giá mã. Thực sự có bất kỳ lý do nào để sử dụng nó theo ý kiến ​​của tôi:

  • Nó kiểm tra cả cho sự tồn tại và giá trị không giả mạo và như một người đọc, ý định của các nhà văn không rõ ràng.
  • Nó không giao tiếp với biến A loại A có, nhìn thấy trống ($ giá trị) không thu hẹp giá trị là đủ.empty($value) does not narrow down what value is enough.
  • Nó ẩn lỗi do lỗi chính tả trong tên biến được truyền đến trống.

Đây là danh sách các lựa chọn thay thế mà tôi khuyên bạn nên sử dụng thay vì trống.

Kiểm tra rằng chuỗi có độ dài 0

// Replace
if (empty($string)) {
}

// With
if (strlen($string) === 0) {
}

Sử dụng Strlen giao tiếp rằng biến là một chuỗi.

Kiểm tra mảng đó không có yếu tố

// Replace
if (empty($array)) {
}

// With
if (count($array) === 0) {
}

Sử dụng Count giao tiếp rằng biến là một mảng.

Kiểm tra xem mảng có khóa không

// Replace
if (empty($array[$key])) {
}

// With
if (array_key_exists($array, $key)) {
}

// or if you know that existance also means a non-empty value
if (isset($array[$key])) {
}

Cả Array_KEY_EXISTS và ISSET truyền đạt rõ ràng hơn rằng mã quan tâm đến sự tồn tại của một khóa chứ không phải nó giả định sự tồn tại và chỉ kiểm tra một giá trị không trống.

Kiểm tra xem một biến được khai báo trong phạm vi

// Replace
if (empty($var)) {
}

// With
if (isset($var)) {
}

Trong trường hợp này, bạn cũng có thể sử dụng ISSET, nhưng nói chung nếu bạn cần kiểm tra điều này thì dù sao thì có điều gì đó không ổn với mã. Một biến phải luôn luôn có hoặc không được khai báo trong phạm vi hiện tại, không nên có sự không chắc chắn về nó.

Kiểm tra nếu một biến là null

// Replace
if (empty($var)) {
}

// With
if ($var === null) {
}

Mã rõ ràng hơn là một bài kiểm tra cho biến là NULL và không vô tình đúng khi 0, giả hoặc chuỗi trống.

Kiểm tra nếu một biến là 0

// Replace
if (empty($var)) {
}

// With
if ($var === 0) {
}

Giao tiếp biến đó là số nguyên.

Kiểm tra nếu một biến là sai

// Replace
if (empty($var)) {
}

// With
if ($var === false) {
}
if (!$var) {
}

Giao tiếp biến đó là Boolean.

Chuyện gì xảy ra nếu?

Bây giờ điều gì sẽ xảy ra nếu tôi muốn kiểm tra sự tồn tại và không trống rỗng cho một phím mảng? Sử dụng hai điều kiện làm cho điều này rõ ràng hơn.

Bây giờ điều gì sẽ xảy ra nếu tôi quan tâm đến hiệu suất của trống là một ngôn ngữ xây dựng so với gọi một hàm nội bộ như strlen hoặc đếm? Không phải lo lắng, cả Strlen và Count đều được Opcache tối ưu hóa nếu bạn đặt trước chúng bằng một dấu gạch chéo ngược để gọi trực tiếp cho họ trong không gian tên toàn cầu.

Thực thi tự động

Được trang bị mã PHP Sniffer và Thi thiên Tôi rất vui khi thực thi các quy tắc với các plugin tùy chỉnh của riêng tôi cho một trong hai công cụ.

Chúng tôi có một plugin thánh vịnh tùy chỉnh trong cơ sở mã Tideways của chúng tôi và tôi đã thêm một thử nghiệm tự động để trống bao gồm một đề xuất cho sự thay thế phù hợp dựa trên loại. Nó không hoàn hảo và chưa nắm bắt được tất cả các loại cách sử dụng trống khác nhau, nhưng đó là một khởi đầu đủ tốt. Xem ý chính này để biết mã và cách đưa nó vào PSALM.XML của bạn.

Đăng vào ngày 19 tháng 2 năm 2021 bởi Benjamin Eberlei

Đăng ký nhận bản tin của tôi để được thông báo khi tôi đăng nội dung mới trên blog này và với nội dung độc quyền không thường xuyên cho người đăng ký.

Bằng cách nhấp vào nút Đăng ký, tôi đồng ý với Benjamin Eberlei để giữ tên và địa chỉ email của tôi cho các mục đích liên hệ với tôi với một bản tin về các chủ đề của blog này. Bạn có thể hủy đăng ký bằng một lần nhấp bất cứ lúc nào và rút lại sự đồng ý của bạn. Không có thư rác. Tôi sẽ không bao giờ chia sẻ địa chỉ e-mail của bạn. Chính sách bảo mật

cái nào tốt hơn?

if (!empty($val)) { // do something }

if ($val) { // do something }

Khi tôi kiểm tra nó với PHP 5, tất cả các trường hợp tạo ra kết quả giống nhau. Thế còn Php 4, hoặc có bất kỳ ý tưởng nào tốt hơn?

Hướng dẫn php don t use empty - php không sử dụng rỗng

Hỏi ngày 31 tháng 8 năm 2011 lúc 16:32Aug 31, 2011 at 16:32

Hướng dẫn php don t use empty - php không sử dụng rỗng

1

Bạn nên sử dụng cấu trúc empty() khi bạn không chắc chắn nếu biến thậm chí tồn tại. Nếu biến dự kiến ​​sẽ được đặt, hãy sử dụng

// Replace
if (empty($array)) {
}

// With
if (count($array) === 0) {
}
0 thay thế.

empty() tương đương với

// Replace
if (empty($array)) {
}

// With
if (count($array) === 0) {
}
2. Nó trả về true nếu biến là:

  • // Replace
    if (empty($array)) {
    }
    
    // With
    if (count($array) === 0) {
    }
    
    3 (một chuỗi trống)
  • // Replace
    if (empty($array)) {
    }
    
    // With
    if (count($array) === 0) {
    }
    
    4 (0 như một số nguyên)
  • // Replace
    if (empty($array)) {
    }
    
    // With
    if (count($array) === 0) {
    }
    
    5 (0 như một chiếc phao)
  • // Replace
    if (empty($array)) {
    }
    
    // With
    if (count($array) === 0) {
    }
    
    6 (0 dưới dạng chuỗi)
  • // Replace
    if (empty($array)) {
    }
    
    // With
    if (count($array) === 0) {
    }
    
    7
  • // Replace
    if (empty($array)) {
    }
    
    // With
    if (count($array) === 0) {
    }
    
    8
  • // Replace
    if (empty($array)) {
    }
    
    // With
    if (count($array) === 0) {
    }
    
    9 (một mảng trống)
  • // Replace
    if (empty($array[$key])) {
    }
    
    // With
    if (array_key_exists($array, $key)) {
    }
    
    // or if you know that existance also means a non-empty value
    if (isset($array[$key])) {
    }
    
    0 (một biến được khai báo, nhưng không có giá trị trong một lớp)

Đã trả lời ngày 31 tháng 8 năm 2011 lúc 16:36Aug 31, 2011 at 16:36

Hướng dẫn php don t use empty - php không sử dụng rỗng

Arnaud le blancarnaud le blancArnaud Le Blanc

96.4K22 Huy hiệu vàng202 Huy hiệu bạc193 Huy hiệu đồng22 gold badges202 silver badges193 bronze badges

1

Đọc hướng dẫn:

trống () là ngược lại với (boolean) var, ngoại trừ không có cảnh báo nào được tạo khi biến không được đặt.

Đã trả lời ngày 31 tháng 8 năm 2011 lúc 16:37Aug 31, 2011 at 16:37

mezemezemeze

14.8K4 Huy hiệu vàng46 Huy hiệu bạc52 Huy hiệu đồng4 gold badges46 silver badges52 bronze badges

Tôi có nên sử dụng PHP trống không?

Bạn nên sử dụng cấu trúc trống () khi bạn không chắc chắn nếu biến thậm chí tồn tại.Nếu biến dự kiến sẽ được đặt, hãy sử dụng nếu ($ var) thay thế.trống () là tương đương!ISSET ($ var) ||$ var == Sai.. If the variable is expected to be set, use if ($var) instead. empty() is the equivalent of ! isset($var) || $var == false .

Cái gì không trống trong PHP?

Hàm php clan () hàm trống () kiểm tra xem một biến có trống hay không.Hàm này trả về sai nếu biến tồn tại và không trống, nếu không nó sẽ trả về đúng.Các giá trị sau đánh giá là trống: 0.This function returns false if the variable exists and is not empty, otherwise it returns true. The following values evaluates to empty: 0.

0 được coi là php trống?

Những điều sau đây được coi là trống: "" (một chuỗi trống) 0 (0 là một số nguyên)0 (0 as an integer)

Chuỗi trống có phải là PHP không?

Một chuỗi được cho là trống, nếu nó không chứa ký tự.Chúng ta có thể sử dụng hàm trống () để kiểm tra xem chuỗi có trống hay không.Hàm được sử dụng để kiểm tra xem chuỗi có trống hay không.Nó sẽ trả về true nếu chuỗi trống.. We can use empty() function to check whether a string is empty or not. The function is used to check whether the string is empty or not. It will return true if the string is empty.