爱飞 发表于 2015-2-3 23:41:29

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";

测试了局是:

了局出来了: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-2-4 06:03:33

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

因胸联盟 发表于 2015-2-9 16:48:44

你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。

分手快乐 发表于 2015-2-27 11:53:48

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

精灵巫婆 发表于 2015-2-28 03:56:26

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

柔情似水 发表于 2015-3-5 03:37:11

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

再现理想 发表于 2015-3-6 04:06:02

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

深爱那片海 发表于 2015-3-12 20:01:55

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

只想知道 发表于 2015-3-17 07:36:03

实践是检验自己会不会的真理。

透明 发表于 2015-3-24 01:59:06

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

爱飞 发表于 2015-4-3 04:02:01

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

谁可相欹 发表于 2015-4-7 02:51:25

兴趣是最好的老师,百度是最好的词典。

仓酷云 发表于 2015-4-11 12:53:45

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

若相依 发表于 2015-4-13 18:14:07

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

兰色精灵 发表于 2015-4-17 14:03:55

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

小女巫 发表于 2015-4-18 14:27:37

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

admin 发表于 2015-4-21 00:05:32

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

愤怒的大鸟 发表于 2015-4-21 22:11:58

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

冷月葬花魂 发表于 2015-4-25 01:30:02

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

老尸 发表于 2015-5-2 15:55:44

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
页: [1] 2
查看完整版本: PHP网页编程之php empty,isset,is