仓酷云

标题: PHP网页编程之php empty,isset,is [打印本页]

作者: 爱飞    时间: 2015-2-3 23:41
标题: PHP网页编程之php empty,isset,is
你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。   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";

测试了局是:
PHP网页编程之php empty,isset,is
登录/注册后可看大图

了局出来了: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";

PHP网页编程之php empty,isset,is
登录/注册后可看大图

经由过程下面这个复杂测试,咱们可以大体晓得,当一个变量存在情形下: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-2-4 06:03
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
作者: 因胸联盟    时间: 2015-2-9 16:48
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 分手快乐    时间: 2015-2-27 11:53
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 精灵巫婆    时间: 2015-2-28 03:56
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
作者: 柔情似水    时间: 2015-3-5 03:37
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 再现理想    时间: 2015-3-6 04:06
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 深爱那片海    时间: 2015-3-12 20:01
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 只想知道    时间: 2015-3-17 07:36
实践是检验自己会不会的真理。
作者: 透明    时间: 2015-3-24 01:59
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 爱飞    时间: 2015-4-3 04:02
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 谁可相欹    时间: 2015-4-7 02:51
兴趣是最好的老师,百度是最好的词典。
作者: 仓酷云    时间: 2015-4-11 12:53
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 若相依    时间: 2015-4-13 18:14
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
作者: 兰色精灵    时间: 2015-4-17 14:03
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 小女巫    时间: 2015-4-18 14:27
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者: admin    时间: 2015-4-21 00:05
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 愤怒的大鸟    时间: 2015-4-21 22:11
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 冷月葬花魂    时间: 2015-4-25 01:30
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 老尸    时间: 2015-5-2 15:55
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 简单生活    时间: 2015-5-6 15:09
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2