Cách sử dụng Isset (), blank (), & is – php nếu không null

PHP là một ngôn ngữ động. Kiểm tra xem có tồn tại biến không trước khi sử dụng biến đó trong mã của bạn. Hãy xem sự khác biệt giữa Isset (), blank (), & is_null () để làm điều đó

Bạn đang xem: php nếu không phải null

Tôi sẽ trung thực: hầu hết các bài đăng mà tôi viết là vì tôi đã giải quyết một vấn đề cho khách hàng hoặc vì tôi đã giải quyết một vấn đề mà Past-david đã tạo ra. Đây là một trong những vấn đề PD, nơi tôi đã viết một số mã ngừng hoạt động. Khi tôi xem xét nó, hóa ra là tôi đã sử dụng sai hàm để kiểm tra một biến trong PHP.

Có rất nhiều hàm được tạo ra để kiểm tra trạng thái và giá trị của các biến, bao gồm những hàm có thể cho bạn biết liệu có bất kỳ thứ gì có sẵn để sử dụng hay không. Ba trong số các hàm này rất dễ trộn lẫn là Isset () , blank () is_null () .

Công cụ kiểm tra biến được tích hợp sẵn

Cả ba hàm này đều được tích hợp sẵn trong PHP, vì vậy chúng phải luôn có sẵn để bạn sử dụng khi viết mã. blank () Isset () là các cấu trúc ngôn ngữ, trong khi is_null () là một hàm chuẩn. Chúng ta sẽ xem xét lý do tại sao điều đó lại quan trọng ở phần sau của bài viết.

Trước khi tôi thảo luận về sự khác biệt và đưa ra một vài ví dụ, đây là mô tả cho blank () , Isset () is_null () từ hướng dẫn sử dụng php.net .

rỗng ()

 

trống

(hỗn hợp $ var): bool

Ngôn ngữ mã:

PHP

(< / p>

php

)

Xác định xem một biến có được coi là trống không. Một biến được coi là trống nếu nó không tồn tại hoặc nếu giá trị của nó bằng FALSE . void () không tạo cảnh báo nếu biến không tồn tại.

Isset ()

 

Isset

(hỗn hợp $ var [, hỗn hợp $. ..]): bool

Ngôn ngữ mã:

PHP

(

php

)

Xác định xem một biến đã được đặt và không phải là NULL .

Nếu một biến chưa được đặt bằng unset () , biến đó sẽ không được đặt nữa. Isset () sẽ trả về FALSE nếu kiểm tra một biến đã được đặt thành NULL . Cũng xin lưu ý rằng ký tự rỗng (“\ 0”) không tương đương với hằng số NULL trong PHP.

Nếu nhiều tham số được cung cấp thì Isset () sẽ chỉ trả về TRUE nếu tất cả các tham số được đặt. Đánh giá đi từ trái sang phải và dừng ngay khi gặp biến chưa đặt.

is_null ()

 

is_null (mix $ var): bool

Ngôn ngữ mã:

PHP

(

php

)

Tìm xem biến đã cho có phải là NULL hay không.

Sự khác biệt giữa các hàm kiểm tra biến này là gì?

Bạn có thể thấy từ các định nghĩa trên rằng ba chức năng này hoạt động tương tự, nhưng không giống nhau. Bạn phải xác định xem bạn đang cố gắng kiểm tra xem một biến là null, true hay false và liệu biến đã được khai báo hay chưa.

Khi nào sử dụng rỗng ()

Nếu bạn đang sử dụng blank () , bạn có thể kiểm tra xem một biến có sai hay không, nhưng cũng có thể kiểm tra nếu biến đó không tồn tại. Hàm này được sử dụng tốt nhất khi bạn muốn đảm bảo rằng cả biến đều tồn tại và có giá trị không bằng false. Lưu ý rằng PHP sẽ coi các chuỗi rỗng, số nguyên 0, số thực là 0,0, mảng trống và giá trị boolean của false là false. Vì vậy, về cơ bản, chỉ sử dụng blank () khi bạn muốn đảm bảo rằng có một số giá trị thực tế cho biến.

Vì bạn không phải khai báo các biến trước khi sử dụng chúng trong PHP, bạn có thể có được một vị trí mà bạn đang cố gắng thực hiện các hành động hoặc chạy các thử nghiệm khác trên một biến chưa được khai báo. Mặc dù cách tốt nhất là khai báo các biến của bạn trước khi sử dụng vì lý do này và lý do khác, nhưng lỗi này là một trong những lý do khiến blank () được sử dụng khác với Isset () .

Khi nào sử dụng Isset ()

Nếu bạn đang sử dụng Isset () , bạn có thể kiểm tra cụ thể xem biến đã được khai báo chưa và giá trị đó không phải là giá trị rỗng. Vì vậy, miễn là bạn có một biến đã khai báo có giá trị được đặt và không thuộc giá trị NULL , bạn sẽ trả về true khi kiểm tra nó với Isset () . Đây sẽ là một điều kiện tốt để kiểm tra trước khi thực hiện các kiểm tra khác để thực hiện các hành động trên một biến:

 

$ variable =

'Một số chuỗi'

;

if

(

Isset

($ variable) & amp; & amp; $ variable! ==

'Một số chuỗi khác'

) {

echo

'Đoạn mã này đánh giá vì cả hai điều trên đều đúng'

; }

Ngôn ngữ mã:

PHP

(

php

)

Trong ví dụ trên, chúng tôi đã khai báo biến của mình là một chuỗi, sau đó kiểm tra xem biến đó có được đặt hay không (đúng là như vậy) và nếu biến đó không bằng một chuỗi khác (thì không). Vì cả hai bài kiểm tra đó đều đúng, nên chúng tôi sẽ lặp lại câu trong câu lệnh điều kiện đó.

Bạn có nên sử dụng is_null () không?

Cuối cùng, is_null () hoạt động theo cách tương tự như Isset () vì ngược lại, với một điểm khác biệt chính: biến phải được khai báo để trả về true, với điều kiện rằng nó được khai báo mà không có bất kỳ giá trị nào hoặc được khai báo cụ thể là NULL .

Tôi đã nói ở trên rằng Isset () kiểm tra xem một biến đã được đặt hay chưa, điều này là đúng, nhưng nó có thể xử lý không có biến nào được đặt và cung cấp kết quả là sai. Điều đó sẽ hữu ích nếu ở đâu đó khác trong mã, cấu trúc unset () đã được sử dụng để xóa hoàn toàn một biến khỏi phạm vi.

Ngược lại, is_null () không những không đánh giá đúng mà còn trả về một thông báo do không có khả năng đánh giá. Thông thường sẽ trông giống như sau:

 

Thông báo: Biến không xác định: biến trong /directory/to/code.php trên dòng X

Ngôn ngữ mã:

PHP

(

< p class = "shcb-language__slug"> php

)

Isset () vừa là một cấu trúc ngôn ngữ và có thể xử lý các biến không được khai báo, tôi thường khuyên bạn nên sử dụng is_null () trong bất kỳ tình hình. Nếu bạn cần sử dụng is_null () , tôi có thể khuyên bạn nên tìm cách viết lại mã của mình.

Cấu trúc ngôn ngữ so với Hàm tích hợp

Tôi đã đề cập trước đó rằng Isset () blank () đều là cấu trúc ngôn ngữ trong PHP, trong đó is_null () là cấu trúc được tích hợp sẵn hàm số. Cấu trúc ngôn ngữ là những từ khóa dành riêng có thể đánh giá bất cứ thứ gì theo sau chúng theo một cách cụ thể. Điều đó có nghĩa là nó đã biết phải làm gì mà không cần phải tìm định nghĩa của cấu trúc giống như một hàm.

Những điều chính cần lưu ý giữa hai điều này khi đánh giá mã của bạn là cấu trúc ngôn ngữ trong PHP nhanh hơn một chút (nhưng thành thật mà nói thì không đủ để lo lắng về việc tối ưu hóa tốc độ), chúng không thể được sử dụng trong các hàm biến và họ không đưa ra bất kỳ lỗi nào khi đánh giá các biến không tồn tại.

Nhiều lần tôi thấy cảnh báo và thông báo vì một biến chưa được khai báo và không ai xác nhận rằng biến đó đã tồn tại trước khi cố gắng thực hiện một số kiểm tra có điều kiện khác với nó. Việc sử dụng Isset () blank () có thể giúp bạn tránh được những lỗi đó một cách lâu dài.

Ví dụ về kết quả đầu ra của ba chức năng này

Bảng sau được lấy trực tiếp từ bản demo do Virendra Chandak tạo trên trang cá nhân của anh ấy. Bạn có thể xem bản trình diễn tại đây .

Giá trị của biến ($ var) Isset ($ var) blank ($ var) is_null ($ var) “” (một chuỗi rỗng) bool (true) bool (true) bool (false) ”” (khoảng trắng) bool (true) bool (false) bool (false) FALSEbool (true) bool (true) bool (false) TRUEbool (true) bool (false) bool (false) array () (mảng trống) bool (true) bool (true) bool ( false) NULLbool (false) bool (true) bool (true) “0” (0 dưới dạng chuỗi) bool (true) bool (true) bool (false) 0 (0 dưới dạng số nguyên) bool (true) bool (true) bool (false) 0.0 (0 dưới dạng float) bool (true) bool (true) bool (false) var $ var; (một biến được khai báo, nhưng không có giá trị) bool (false) bool (true) bool (true) NULL byte (“\ 0”) bool (true) bool (false) bool (false)


Xem thêm những thông tin liên quan đến chủ đề php nếu không null

Null Test Explained: A Pro Audio MUST KNOW!

  • Tác giả: Doctor Mix
  • Ngày đăng: 2018-09-11
  • Đánh giá: 4 ⭐ ( 8585 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Today we explain how to perform a null test and how to use it to check the quality of audio, including MP3s and Audio Interfaces.

    Do you want to know Doctor Mix's TOP 10 mixing techniques? Join our list here and download the PDF straight away: doctormix.com/top-10-mix-techniques.html

    More about the Prism Sound Lyra 2 on the manufacturer's website: http://www.prismsound.com/music_recording/products_subs/lyra/lyra_home.php

    If you haven't watched our previous animation video about audio latency then you really want to watch it: https://youtu.be/6sCLzzZhdfQ

    Find out more about our Mixing, Mastering & Production services here: https://www.doctormix.com/services

    ► Subscribe to our Youtube channel here http://www.youtube.com/subscription_center?add_user=DoctorMixTV
    --
    Thank you for watching this video. I hope that you keep up with the weekly videos we post on the channel, subscribe, and share with those who need to see them. Your comments are our oxygen, so please take a second and say hi 😉
    --
    Doctor Mix is our Online Mixing, Mastering and Music Production service. We proudly serve major record labels, independent artists, and film/tv/advertising agencies since 2005 and we’re recognised as one of the most successful online music studios today.
    ----
    Follow Us Online Here:

    Website: http://DoctorMix.com
    Facebook: http://www.facebook.com/DoctorMixDotCom/
    Instagram: doctormixdotcom
    Soundcloud: http://soundcloud.com/doctor_mix
    Twitter: http://twitter.com/doctormix

    Subscribe to our list and get our top 10 mixing tips: https://doctormixstore.com/get-10-free-mixing-tips

Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

  • Tác giả: tanhongit.com
  • Đánh giá: 5 ⭐ ( 9082 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: hàm kiểm tra dữ liệu giá trị của biến trong PHP. Bài viết sẽ giới thiệu các hàm thông dụng thường hay dùng như là isset(), empty(), is_null(),....

Phân biệt toán tử ?? và ?: trong PHP

  • Tác giả: viblo.asia
  • Đánh giá: 3 ⭐ ( 4221 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Giới thiệu Khi làm việc với các framework PHP, chúng ta thấy xuất hiện các toán tử ?? và ?: được sử dụng rất thường xuyên. Bản thân mình trong quá trình làm việc hay bị nhầm lẫn khi sử dụng chúng. Để...

Không so với Sai so với 0 trong PHP

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 5195 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Đó là ngôn ngữ cụ thể, nhưng trong PHP: Nullcó nghĩa là " không có gì…

Các kiểu biến, cách sử dụng biên trong PHP

  • Tác giả: hoclaptrinh.vn
  • Đánh giá: 4 ⭐ ( 8849 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cách chính để lưu trữ thông tin trong chương trình PHP là sử dụng một biến.Integer Double Boolean NULL String Array Object Resource

Biến trong PHP

  • Tác giả: vietjack.com
  • Đánh giá: 5 ⭐ ( 7915 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Hàm isset() và empty() trong PHP

  • Tác giả: quachquynh.com
  • Đánh giá: 5 ⭐ ( 9533 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Khi học lập trình PHP bạn sẽ thường xuyên gặp phải hai hàm isset() và hàm empty(), bài viết sau đây mình sẽ giúp bạn biết khi nào nên sử dụng isset và empty như thế nào.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  CHÈN (Transact-SQL) - Máy chủ SQL - ms sql chèn vào