搜尋
首頁php教程php手册php中empty(),isset(),is

有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚。这里再重复一次,但不是从概念去说,直接用程序例子来说话,应该记忆会比较深刻些。 测试的类型如下: ?php$a;$b = false;$c = '';$d = 0;

有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚。这里再重复一次,但不是从概念去说,直接用程序例子来说话,应该记忆会比较深刻些。

测试的类型如下:

<?php $a;
$b = false;
$c = '';
$d = 0;
$e = null;
$f = array();

?>

empty()

首先是empty()的var_dump输出:

<?php var_dump(empty($a));
var_dump(empty($b));
var_dump(empty($c));
var_dump(empty($d));
var_dump(empty($e));
var_dump(empty($f));

?>

程序输出为:

$a;           : bool(true)
$b = false;   : bool(true)
$c = '';      : bool(true)
$d = 0;       : bool(true)
$e = null;    : bool(true)
$f = array(); : bool(true)

从代码中可以看出,只要数据类型是否为空或假,empty()就输出true。

isset()

再看看isset的输出:

var_dump(isset($a));
var_dump(isset($b));
var_dump(isset($c));
var_dump(isset($d));
var_dump(isset($e));
var_dump(isset($f));

// 输出
$a;           : bool(false)
$b = false;   : bool(true)
$c = '';      : bool(true)
$d = 0;       : bool(true)
$e = null;    : bool(false)
$f = array(); : bool(true)

可以看出isset()只能用来判断是否为NULL和未定义。

is_null()

最后是is_null的输出:

var_dump(is_null($a));
var_dump(is_null($b));
var_dump(is_null($c));
var_dump(is_null($d));
var_dump(is_null($e));
var_dump(is_null($f));

// 输出
$a;           : bool(true)
$b = false;   : bool(false)
$c = '';      : bool(false)
$d = 0;       : bool(false)
$e = null;    : bool(true)
$f = array(); : bool(false)

is_null 字面意思了。

由此可见 empty() 可以用来判定所有的数据类型是否为空或假,包含数组是否有元素,而 is_null 与 isset 基本一样,只能用来判断是否为NULL和未定义。

 

==和===区别:

===是恒等计算符   同时检查表达式的值与类型

==是比较运算符号  不会检查条件式的表达式的类型

举例

if (strstr($new_url,'http://') === false) 

 

NULL,FALSE,array(),"",0,"0"这几个值如果用==他们是相等的,

判断出某个值真正的返回值呢,就可以用 ===

$a = 0;(数值)

$b = FALSE;(布尔)

$a === FALSE (类型不一样)不成立

$b === FALSE(类型一样)成立

 

由于==不会检查条件式的表达式类型

所以

0即是数值0,也是布尔FALSE,==不强制类型一致性,故以下:

$a == FALSE 和 $b == FALSE都成立

===的用途

PHP某些内置函数成功会返回数值还有" "、0之类的空值,失败会返回false,

用==符号无法判断,而用===就可以判断出来,它区分了返回值的值及类型。

例如:

var_dump(stripos('中国','中') == false);    输出:true 

var_dump(stripos('中国','中') === false);  输出:false

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。