3. is_null()、empty()、isset()の違い
//特別な注意:これらの3つの関数は変数の判定にのみ適しており、リテラルを直接使用しないでください
* 1. is_null()の場合true を返しますか?
* 1. 変数は宣言されていますが初期化されておらず、デフォルト値は null です
* 2. 変数は null として表示されます
* 3. unset() が破棄された後、変数は null になります
* 概要: 変数が存在しない/値が割り当てられていない/値が null の場合、true を返します
$val1; //已声明,但未赋值 $val2 = null; //直接用null初始化变量 $val3 = 'php'; unset($val3); //彻底销毁变量
//注: 三項演算子を使用して true または false を出力するのは直感のためであり、完全に省略できます
@var_dump(is_null($val1) ? true : false); //true var_dump(is_null($val2) ? true : false); //true @var_dump(is_null($val3) ? true : false); //true
// var_dump(is_null('')) ; //空の文字列は false を返します
* 2. empty() はどのような場合に true を返しますか?
* 1. 空の文字列、空の配列
* 2. null
* 3.0 / '0' / false
* 概要:
* 1. 変数が存在しない場合は、is_null() / empty() を使用して
* 2 を決定できます。変数が存在するが、その値が実行結果と異なる場合 効果がない場合、空とみなされます
* 3. null は空である必要がありますが、null 値または 0 の可能性があるため、空は必ずしも null であるとは限りませんまたは false
*/
$str1 = ''; $str2 = []; $str3 = '0'; $str4 = 0; $str5 = null; $str6 = false; $str7 = 'peter zhu'; echo '<hr>'; var_dump(empty($str1) ? true : false);//空字符串 var_dump(empty($str2) ? true : false);//空数组 var_dump(empty($str3) ? true : false);//字符型数字0 var_dump(empty($str4) ? true : false);//数字0 var_dump(empty($str5) ? true : false);//null值 var_dump(empty($str6) ? true : false);//布尔false var_dump(empty($str7) ? true : false);//有值且不为空,返回false
* 思考: ユーザーがテキスト ボックス内にいるかどうかを判断します。コンテンツを入力した後、is_null() または empty() を使用する必要がありますか?
* 回答: empty() を使用する必要があります。 is_null() は使用できません
* 理由: テキスト ボックスの値はデフォルトで空の文字列、つまり value = '' が割り当てられているため、それは単なる null 値です
* したがって、is_null() は使用できます値が null かどうかのみを確認し、empty() を使用する必要があります
* isset() は null の否定演算です
* 概要: 変数はすでに存在し、その値が null でない場合は true を返し、それ以外の場合は true を返します。 false
$domain = 'www.php.cn'; $name = null; $job; echo '<hr>'; var_dump(isset($var)); var_dump(isset($domain) ? true : false); var_dump(isset($name) ? true : false); var_dump(isset($job) ? true : false); //false,未赋值并不报错,与is_null不同
* 要約:
* 1. 変数には宣言済み、未宣言の 2 つの状態があります
* 2. 宣言された変数にも 2 つの状態があります: 割り当て済み (初期化)、未割り当て (初期化されていない)
* 3. 変数は割り当てられる場合があります値の型: null、空の値、null 以外の値
* 3.1: null 値: is_null()
* 3.2: 空の値: empty()
* 3.3: 空または空でない値: isset()
* 基本的な使用原則:
* 1. 宣言されていない変数については isset() のみを使用できます。 判定
* 2. 宣言された変数については、empty() を使用して空かどうかを判断し、is_null() を使用して空かどうかを判断します初期化されています
echo '<hr color="red">';
//最初のシナリオ: 変数が宣言されていません
//$a が宣言されていません
var_dump(isset($a) ? true : false); //不报错,返回false表示未声明
//例: ページにデータを表示するとき、現在の URL にページング変数ページがある場合、指定されたページが出力され、それ以外の場合はデフォルトでデータの最初のページが出力されます
$name = isset($_GET['page']) ? $_GET['page'] : 1;
//is_nullは警告を出し、自動的に$ a = nullを実行するため、trueを返します
var_dump(is_null($a) ? true : false);
//宣言されていない変数のためは自動的に null に初期化され、null 値を持つ変数の場合、empty() はそれらが空であるとみなして true を返します
var_dump(empty($a) ? true : false);
// 2 番目のシナリオ: 変数は宣言されています
$a = 'www.php.cn'; $b = ''; $c = null; echo '<hr color="blue">'; var_dump(isset($a)); //有无判断 var_dump(empty($b)); //非空判断 var_dump(is_null($c)); //null
// 初期化の原則変数:
//1。変数の型がわかっている場合、
$num = 0; //数值 $userName = ''; //字符串 $isPass = false; //布尔 $books = []; //数组 $student = null; //对象
//2。変数が最終的にどのような値を保存するかわからないため、null で初期化することをお勧めします。