仓酷云

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

[学习教程] PHP教程之isset和is_null的分歧

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:22:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
培训的第二阶段,开始了PHP语言语法结构和应用的学习。      isset和is_null啥区分,
    看手册上讲的话, isset和is_null的功效几近完整”相反的一样”..
    是否是isset就是一个is_null的相反的别号?
    诶, 要说区分, 那还真的是良多~
    一切的分歧都是由于: is_null是函数, isset是语句.
    isset是语句, 和echo, print一样, 是PHP自己的一种言语布局.
    而is_null是函数, 和咱们普通的函数一样, 可以做为可变函数挪用.
    你或许会说, 好了,好了,我晓得函数和语句的区分, 但究竟是TMD甚么区分?
    诶, 所谓语句,言语布局, 就是说, 是言语自己撑持的语句, 标识符.
    好比, for, foreach, continue 等等, 它们在语法剖析的时辰就被”抹失落”(逻辑上替换了)了.
    让咱们看看isset这个语句在语法剖析的过程当中, 是若何被”抹失落”的.
    1. 起首, 在词法剖析的时分, isset会被辨认为T_ISSET标识符.
    2. 而在语法剖析阶段, isset($var)这个指令, 会被剖析成一条Opcode:ZEND_ISSET_ISEMPTY_VARS.
    你可以了解isset就想C言语外面的宏, 在编译/履行之前已被睁开了.
    由于这个, 所以在体现上, 会有以下的分歧:
    由于is_null是函数, 所以它可以经由过程以下体例挪用:
    $var = NULL;
    $func = "is_null";
    $func($var);
    ?>
    而, isset由于是语句, 所以不克不及如许挪用.
    由于is_null是函数, 所以它可以承受函数前往值做为参数, 而isset不可(固然, 假如PHP想撑持, 其实也是可以的, 只不外就要增添编译阶段的庞杂度了):
    is_null(intval("0x45"));
    //OK
    isset(intval("0x45"));
    //PHP Fatal error: Can't use function return value in write context
    is_null(NULL);
    //OK
    isset(NULL);
    //PHP Parse error: syntax error
    ?>
    说了这么多isset的弱点了, 说点它的长处吧:
    由于isset是语句, 所以它快!
    在一万万次的复杂检测语句轮回中, 对照了局以下:
    $a="laruence":
    isset($a); //用时: 1.15s
    is_null($a); //用时: 3.89s
    ?>
    由于isset叫做isset, 所以它在检测不决义变量的时分, 不会发生NOTICE:
    isset($laruence);
    //OK
    is_null($laruence);
    //PHP Notice: Undefined variable: laruence
    ?>
    那末, 关于甚么时分用isset甚么时分用is_null, 我有甚么建议呢?
    诶, 我的建议是, 用函数做函数应当做的工作~, 听起来象空话?
    isset => is set? => 变量有无被赋值(声明)
    is_null => is null? => 变量为NULL么?
    别的, 假如要用is_null, 我建议利用 “=== NULL” 来取代, 它不但语义和is_null分歧, 了局分歧, 速度还和isset差不多:
    在一万万次的复杂检测语句轮回中, 对照了局以下:
    $a="laruence":
    isset($a); //用时: 1.15s
    is_null($a); //用时: 3.88s
    $a===NULL; //用时: 1.22s
    ?>
小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。
山那边是海 该用户已被删除
沙发
发表于 2015-2-16 00:32:15 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-2-22 20:14:32 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
小魔女 该用户已被删除
地板
发表于 2015-3-1 17:04:56 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
简单生活 该用户已被删除
5#
发表于 2015-3-7 08:24:40 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
莫相离 该用户已被删除
6#
发表于 2015-3-7 13:54:50 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
老尸 该用户已被删除
7#
发表于 2015-3-7 17:58:42 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
海妖 该用户已被删除
8#
发表于 2015-3-10 12:35:42 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
小女巫 该用户已被删除
9#
发表于 2015-3-17 06:35:22 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
变相怪杰 该用户已被删除
10#
发表于 2015-3-23 23:45:00 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
金色的骷髅 该用户已被删除
11#
发表于 2015-3-24 10:25:46 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
飘灵儿 该用户已被删除
12#
发表于 2015-3-27 01:08:09 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
灵魂腐蚀 该用户已被删除
13#
发表于 2015-3-28 01:36:13 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
若相依 该用户已被删除
14#
发表于 2015-4-1 11:10:10 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
活着的死人 该用户已被删除
15#
发表于 2015-4-2 20:51:38 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
不帅 该用户已被删除
16#
发表于 2015-4-4 19:41:24 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
17#
发表于 2015-4-7 21:05:32 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
飘飘悠悠 该用户已被删除
18#
发表于 2015-4-9 17:34:53 | 只看该作者
爱上php,他也会爱上你。
若天明 该用户已被删除
19#
发表于 2015-4-29 13:36:11 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
爱飞 该用户已被删除
20#
发表于 2015-5-1 04:11:35 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 02:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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