PHP condition test (with null varible)

PHP condition test (with null varible)

Tôi đã test thử với các trường hợp sau với 1 triệu vòng lặp:

+ if(isset($x)) với $x đã tồn tại, thời gian hết 0.218082904816

+ if(isset($x)) với $x không tồn tại (chưa khai báo) hết 0.199568033218 (nhanh hơn một chút)

+ if($x) với $x đã tồn tại, kiểu string hết 0.166479825974

+ if($x) với $x đã tồn tại, kiểu array hết 0.170602798462

+ if($x) với $x đã tồn tại, kiểu bool hết 0.165798187256

+ if($x) với $x không tồn tại hết 1.30605792999

+ if(is_array($x)) với $x tồn tại 0.544118881226

+ if(is_array($x)) với $x không tồn  tại 1.7626478672

+ if($x != intval($x)) với $x tồn tại 0.90156793594

+ if($x != intval($x) với $x không tồn tại 2.93575501442

Do đó trong khi lập trình với PHP, việc đảm bảo sự tồn tại của biến khá là quan trọng với performance. Và không nên sử dụng các hàm kiểm tra điều kiện một cách thoải mái (mặc dù php không cấm đoán điều đó).

Khi không chắc về sự tồn tại của biến, và không cần kiểm tra giá trị, thì nên sử dụng isset(). Mỗi một hàm ra đời đều có mục đích cụ thể. Các hệ thống cỡ nhỏ thì không đặt nặng vấn đề performance. Nhưng với hệ thống lớn, đảm bảo tài nguyên sử dụng cho CPU rất là quan trọng.

Một vấn đề khác nữa đó là, nên sử dụng mảng hay biến PHP. Câu trả lời là, chỉ sử dụng mảng khi mảng phát huy được sự tiện lợi của nó, thực tế cho thấy, các truy vấn trong mảng tốn nhiều tài nguyên hơn truy vấn biến rất nhiều.

+ với biến 0.169647932053

+ với mảng 0.286859989166 chậm gần gấp đôi thời gian so với truy vấn dữ liệu theo tên biến.

Khi so sánh giữa array_key_exists và isset để kiểm tra sự tồn tại giá trị của một biến mảng:

+ với array_key_exists: 0.836390018463 (tồn tại) và 0.945994853973 (chưa tồn tại)

+ với isset: 0.249009847641 (đã tồn tại) và 0.229282855988 (chưa tồn tại)

Vì vậy, khuyến cáo sử dụng isset cho trường hợp này.

/**
* Nhận ra đoạn mã UTF-8
*
*/

function isUTF8($string) {

// from http://w3.org/International/questions/qa-forms-utf-8.html
return 0 != preg_match('%^(?:

[\x09\x0A\x0D\x20-\x7E]            # ASCII

| [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte

|  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs

| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte

|  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates

|  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3

| [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15

|  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16

)*$%xs', $string);

}
Tags: 
Bạn thấy bài viết này như thế nào?: 
Average: 10 (1 vote)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Bình luận (0)

 

Add Comment

Filtered HTML

  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Các thẻ HTML được chấp nhận: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Tự động ngắt dòng và đoạn văn.

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Open Publish

Drupal distributions: Open Publish

Open Publish is a Drupal distribution oriented to online media publications: large and small newspapers, magazines, radio online, multimedia sites, publication of papers, etc.

Cách tăng Google Pagerank cho trang web

Cách tăng Google Pagerank cho trang web

Googe Pagerank tuy không phải là yếu tố duy nhất và quyết định đối với kết quả tìm kiếm, nhưng không thể bỏ qua.

Nhóm phát triển kính Project Glass trình diễn cách tìm kiếm trên kính Glass

Nhóm phát triển kính Project Glass trình diễn cách tìm kiếm trên kính Glass

Nhóm phát triển kính Project Glass đăng một video cho thấy chiếc kính thông minh của Google hoạt động ấn tượng với khả năng nhận diện giọng nói và tương tác thực ảo (AR - augmented reality).

Công ty diệt chuột T&C

 

Diet con trung