仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1417|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网页编程之php empty,isset,is

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:41:29 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。   1、举例申明
A.一个变量没有界说,咱们该怎样去判别呢
复制代码 代码以下:
<?php
#不存在$test 变量

$isset= isset($test)?"test is define!":"test is undefine!";
echo "isset:$isset\r\n";

$empty=!empty($test)?"test is define!":"test is undefine!";
echo "empty:$empty\r\n";

$is_null=is_null($test)?"test is define!":"test is undefine!";
echo "is_null:$is_null\r\n";

测试了局是:

了局出来了:empty,isset起首城市反省变量是不是存在,然后对变量值停止检测。而is_null 只是直接反省变量值,是不是为null,因而假如变量不决义就会呈现毛病!
B、看下各自吸收的参数是甚么?
isset函数参数:
<?php
$test=100;
echo isset($test),isset(100),$isset($b=100);
  
<br />
<b>Parse error</b>: parse error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or "$" in <b>PHPDocument3</b> on line <b>3</b><br />
empty函数参数:
<?php
$test=100;
echo empty($test),empty(100),empty($b=100);
  
<br />
<b>Parse error</b>: parse error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or "$" in <b>PHPDocument3</b> on line <b>3</b><br />
is_null函数参数:
<?php
$test=100;
echo is_null($test),is_null(100),is_null($b=100);
运转了局:没有任何毛病。
对照了局出来了:empty,isset输出参数必需是一个变量(php变量是以$字符开首的),而is_null输出参数只需是可以有前往值就能够。(常量,变量,表达式等)。在php手册外面,关于他们解析是:empty,isset 是一个言语布局而非函数,因而它没法被变量函数挪用。
2、归纳综合总结isset,empty,is_null区分:
方才引见的:反省变量,和参数类型,这个是这3个函数分歧的地方的基本,也是最轻易被无视的。看到网上有良多对这个3个函数停止对照文章。很少触及这些。上面我要说的,是在都反省已存在变量情形下,分歧的地方。

实例:

复制代码 代码以下:
<?php
$a=100;
$b="";
$c=null;
//isset反省
echo "isset","\$a=$a",isset($a)?"define":"undefine","\r\n";
echo "isset","\$b=$b",isset($b)?"define":"undefine","\r\n";
echo "isset","\$c=$c",isset($c)?"define":"undefine","\r\n";
unset($b);
echo "isset","\$b",isset($b)?"define":"undefine","\r\n";
$b=0;
echo "\r\n\r\n";

//empty反省
echo "empty","\$a=$a",!empty($a)?"no empty":"empty","\r\n";
echo "empty","\$b=$b",!empty($b)?"no empty":"empty","\r\n";
echo "empty","\$c=$c",!empty($c)?"no empty":"empty","\r\n";
unset($b);
echo "empty","\$b",!empty($b)?"no empty":"empty","\r\n";
$b=0;
echo "\r\n\r\n";

//is_null反省
echo "is_null","\$a=$a",!is_null($a)?"no null":"null","\r\n";
echo "is_null","\$b=$b",!is_null($b)?"no null":"null","\r\n";
echo "is_null","\$c=$c",!is_null($c)?"no null":"null","\r\n";
unset($b);
echo "is_null","\$b",is_null($b)?"no null":"null","\r\n";


经由过程下面这个复杂测试,咱们可以大体晓得,当一个变量存在情形下:isset,empty,is_null检测,失掉值情形了。下面没有举例更多变量。其实测试发明:

empty

假如 变量 长短空或非零的值,则 empty() 前往 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var、不决义; 和没有任何属性的对象都将被以为是空的,假如 var 为空,则前往 TRUE。

isset

假如 变量 存在(非NULL)则前往 TRUE,不然前往 FALSE(包含不决义)。变量值设置为:null,前往也是false;unset一个变量后,变量被作废了。注重,isset关于NULL值变量,特别处置。

is_null

检测传入值【值,变量,表达式】是不是是null,只要一个变量界说了,且它的值是null,它才前往TRUE . 其它都前往 FALSE 【不决义变量传入后会失足!】.


疑问:怎样判别一个变量被设置了,而且值为NULL呢?

经由过程下面对照,估量人人与我一样,会有这个成绩显现在脑海外面。 检测一个变量是不是是null 可以用:is_null,但假如变量不决义用它检测会失足。因而,咱们想到,检测变量是不是界说可以用:isset,然而假如一个变量值是:null, 则它会前往false . 哈哈,这个成绩怎样处理呢?守候人人分享……

反省变量存在,而且值为NULL.
复制代码 代码以下:
<?php
function checkNull($a)
{
if(array_key_exists($a,$GLOBALS))
{
global $$a;
if(is_null($$a))
return true;
}
return false;
}
$test=null;
var_dump(checkNull("test"));
var_dump(checkNull("test1"));
PHP于1994年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。
爱飞 该用户已被删除
沙发
 楼主| 发表于 2015-4-3 04:02:01 | 显示全部楼层
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-9 17:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表