Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bandingkan fungsi isset(), kosong() dan is_null() PHP

Bandingkan fungsi isset(), kosong() dan is_null() PHP

王林
王林asal
2023-09-04 20:25:06819semak imbas

Bandingkan fungsi isset(), kosong() dan is_null() PHP

Anda akan menggunakan pembolehubah dalam hampir setiap program yang ditulis dalam PHP. Selalunya pembolehubah ini mempunyai nilai, dan kami biasanya menciptanya dengan nilai awal. Walau bagaimanapun, sentiasa ada kemungkinan beberapa pembolehubah yang anda gunakan tidak dimulakan. Ini boleh menyebabkan PHP mengeluarkan amaran tentang penggunaan pembolehubah tidak ditentukan.

Terdapat banyak sebab untuk pembolehubah yang tidak ditentukan. Masalah yang paling biasa ialah anda sebenarnya tidak mentakrifkan pembolehubah, atau anda membuat kesilapan apabila menggunakannya semula di tempat lain. Ini hanyalah ralat pengaturcaraan. Walau bagaimanapun, satu lagi kemungkinan yang boleh mengakibatkan pembolehubah tidak ditentukan ialah ia ditakrifkan secara bersyarat.

Anda juga mungkin mendapati bahawa nilai pembolehubah ialah NULL. Ini boleh berlaku atas pelbagai sebab. Sebagai contoh, pembolehubah mungkin tidak dimulakan dengan nilai. Atau fungsi mungkin mengembalikan null untuk menunjukkan beberapa jenis ralat. NULL。发生这种情况的原因有多种。例如,变量可能只是尚未用值初始化。或者函数可能会返回空值来表示某种错误。

无论如何,在定义变量之前或当变量具有空值时使用变量可能会产生意想不到的后果。在本教程中,我将向您展示如何检查元素是否已定义并查看它是否为空或 null。

您可以使用 isset()empty()is_null() 来检查其中一个或所有条件是否为真或假。

定义

让我们开始一些定义。

  1. isset():您可以使用 isset() 来确定变量是否已声明并且与 null 不同。
  2. empty():用于判断变量是否存在且变量的值不等于 false
  3. is_null():该函数用于检查变量是否为 null

PHP isset()empty()

正如我们从定义中看到的,如果我们之前定义了该变量并将其值设置为 NULL 以外的值,则 isset() 将返回 true。这可以包括 0、空字符串或 false。另一方面,每当变量值设置为计算结果为 false 时,empty() 将返回 true — 我们称这些为“假”值。 falsey 值的示例包括 0、空字符串 "" 和字符串 "0"、空数组、NULL,或者当然是布尔值 false

isset()empty() 之间的一个相似之处是它们都是语言结构,因此不能使用变量函数进行调用。

下面的代码片段应该解释这两者之间的区别。

<?php

$fruit = '';

if(isset($fruit)) {
    echo 'Do you like '.$fruit.'?';
}
// Output:  Do you like ?

if(!empty($fruit)) {
    echo 'Do you like '.$fruit.'?';
}
// No Output

?>

请注意,empty() 可以使用 isset() 函数编写:

<?php

function my_empty($x) {
  return !isset($x) || $x == false
}

?>

当然,通常使用内置的 empty() 函数会更容易。

PHP isset()is_null()

如果变量的值已显式设置为 NULL,则 is_null() 函数将返回 true。否则,它只是返回 false。另一方面,只要定义了变量并且其值不为 NULLisset() 就会返回 true

这是一个基本示例来显示它们之间的差异。

<?php

$fruit = NULL;

if(isset($fruit)) {
    echo 'Do you like '.$fruit.'?';
}
// No Output

if(is_null($fruit)) {
    echo 'There is no fruit.';
}
// Output: There is no fruit.

?>

PHP empty()is_null()

如果变量的值计算结果为 false,则 empty() 函数将返回 true。这可能意味着空字符串、NULL、整数 0 或没有元素的数组。另一方面,仅当变量的值为 NULL 时,is_null() 才会返回 true

这是一个基本示例来显示它们之间的差异。

<?php

$person = ['first_name' => 'Monty', 'last_name' => '', 'age' => '83', 'fav_movie' => NULL];

if(empty($person['last_name'])) {
    if(is_null($person['last_name'])) {
        echo 'The last name is set to NULL.';
    } else {
        echo 'The last name is probably an empty string.';
    }
}
// Output: The last name is probably an empty string.

if(is_null($person['fav_movie'])) {
    echo $person['first_name'].' did not specify a favorite movie.';
}
// Output: Monty did not specify a favorite movie.

要记住的重要要点

您可以使用两个技巧来编写更简洁的代码并避免将来出现错误。

1.与 empty()is_null() 不同,您可以一次向 isset() 传递多个值,以同时检查其中是否有任何未定义或设置为 NULL。在这种情况下,如果传递的值都不是 NULL,则 isset() 将仅返回 true

2.不要使用 == 来检查值是否为 NULL。这将为错误值(例如计算为 false 的空字符串)提供误报。

最终想法

本教程快速解释了 isset()empty()is_null()

Apapun, menggunakan pembolehubah sebelum mentakrifkannya atau apabila ia mempunyai nilai nol mungkin mempunyai akibat yang tidak diingini. Dalam tutorial ini, saya akan menunjukkan kepada anda cara untuk menyemak sama ada elemen ditakrifkan dan melihat sama ada ia kosong atau batal. 🎜 🎜Anda boleh menggunakan isset(), empty() atau is_null() untuk menyemak sama ada satu atau semua syarat adalah benar atau palsu. 🎜

Takrif

🎜Mari mulakan dengan beberapa definisi. 🎜
  1. isset(): Anda boleh menggunakan isset() untuk menentukan sama ada pembolehubah telah diisytiharkan dan berbeza daripada null.
  2. empty(): Digunakan untuk menentukan sama ada pembolehubah wujud dan nilai pembolehubah itu tidak sama dengan false.
  3. is_null(): Fungsi ini digunakan untuk menyemak sama ada pembolehubah adalah null.

PHP isset() dan kosong()

🎜Seperti yang kita boleh lihat daripada takrifan, jika sebelum ini kita mentakrifkan pembolehubah dan menetapkan nilainya kepada sesuatu selain daripada NULL, isset() akan mengembalikan true kod>. Ini boleh termasuk <code>0, rentetan kosong atau false. Sebaliknya, empty() akan mengembalikan true apabila nilai pembolehubah ditetapkan untuk menilai kepada false — kami panggil ini "false" " nilai. Contoh nilai falsey termasuk 0, rentetan kosong "" dan rentetan "0", tatasusunan kosong, NULL, atau sudah tentu nilai boolean false. 🎜 🎜Satu persamaan antara isset() dan empty() ialah kedua-duanya adalah binaan bahasa dan oleh itu tidak boleh dipanggil menggunakan fungsi pembolehubah. 🎜 🎜Coretan kod di bawah harus menerangkan perbezaan antara keduanya. 🎜 rrreee 🎜Sila ambil perhatian bahawa empty() boleh ditulis menggunakan fungsi isset(): 🎜 rrreee 🎜Sudah tentu, ia biasanya lebih mudah untuk menggunakan fungsi empty() terbina dalam. 🎜

PHP isset() dan is_null()

🎜Jika nilai pembolehubah telah ditetapkan secara eksplisit kepada NULL, fungsi is_null() akan mengembalikan true. Jika tidak, ia hanya mengembalikan false. Sebaliknya, isset() mengembalikan true apabila pembolehubah ditakrifkan dan nilainya bukan NULL. 🎜 🎜Berikut adalah contoh asas untuk menunjukkan perbezaan antara mereka. 🎜 rrreee

PHP kosong() dan is_null()

🎜Jika nilai pembolehubah dinilai kepada false, fungsi empty() akan mengembalikan true. Ini mungkin bermaksud rentetan kosong, NULL, integer 0 atau tatasusunan tanpa unsur. Sebaliknya, is_null() akan mengembalikan true hanya jika nilai pembolehubah ialah NULL. 🎜 🎜Berikut adalah contoh asas untuk menunjukkan perbezaan antara mereka. 🎜 rrreee

Perkara penting untuk diingat

🎜Terdapat dua petua yang boleh anda gunakan untuk menulis kod yang lebih bersih dan mengelakkan ralat pada masa hadapan. 🎜 🎜1 Tidak seperti empty() dan is_null(), anda boleh menghantar berbilang nilai kepada isset() sekaligus untuk menyemaknya secara serentak. Adakah mana-mana yang tidak ditentukan atau ditetapkan kepada NULL. Dalam kes ini, isset() hanya akan mengembalikan true jika tiada nilai yang diluluskan adalah NULL. 🎜 🎜2 Jangan gunakan == untuk menyemak sama ada nilainya NULL. Ini akan memberikan positif palsu untuk nilai yang salah seperti rentetan kosong yang menilai kepada false. 🎜

Pemikiran Akhir

🎜Tutorial ini menerangkan dengan cepat perbezaan antara isset(), empty() dan is_null(). Mudah-mudahan anda kini dapat menentukan yang mana antara ini yang terbaik untuk anda gunakan dalam kod anda. 🎜

Atas ialah kandungan terperinci Bandingkan fungsi isset(), kosong() dan is_null() PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn