ホームページ  >  記事  >  phpの判定変数

phpの判定変数

无忌哥哥
无忌哥哥オリジナル
2018-06-28 09:11:352208ブラウズ

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 &#39;<hr>&#39;;
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 = &#39;www.php.cn&#39;;
$name = null;
$job;
echo &#39;<hr>&#39;;
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 &#39;<hr color="red">&#39;;

//最初のシナリオ: 変数が宣言されていません

//$a が宣言されていません

var_dump(isset($a) ? true : false);  //不报错,返回false表示未声明

//例: ページにデータを表示するとき、現在の URL にページング変数ページがある場合、指定されたページが出力され、それ以外の場合はデフォルトでデータの最初のページが出力されます

$name = isset($_GET[&#39;page&#39;]) ? $_GET[&#39;page&#39;] : 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 = &#39;www.php.cn&#39;;
$b = &#39;&#39;;
$c = null;
echo &#39;<hr color="blue">&#39;;
var_dump(isset($a));  //有无判断
var_dump(empty($b));  //非空判断
var_dump(is_null($c)); //null

// 初期化の原則変数:

//1。変数の型がわかっている場合、

$num = 0; //数值
$userName = &#39;&#39;; //字符串
$isPass = false; //布尔
$books = []; //数组
$student = null; //对象

//2。変数が最終的にどのような値を保存するかわからないため、null で初期化することをお勧めします。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。