PHP技术

当前位置:首页 > PHP技术 >

PHP中易混淆知识整理

时间:2015-09-25        阅读:次        QQ群:182913345

        在php中经常会混淆的知识点有很多,例如include与require的区别,require_once()和include_once()语句等一些的知识点,感觉这方面欠缺的朋友可以参考一下。
 
        1.echo和print的区别
        PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。
 
        2.include与require的区别
        include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。
        在错误处理方面,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行!但requre却会给你来个致命错误。
        当然,从字面意思上我们也可以理解七分:requre是很强硬的请求、要求的意思。
 
        3.require_once()和include_once()语句
        题外话了,因为长的像,简单require_once()和include_once()语句分别对应于require()和include()语句。require_once() 和include_once()语句主要用于需要包含多个文件时,可以有效地避免把同一段代码包含进去而出现函数或变量重复定义的错误。
 
        4.空字符串('')和NULL的区别
        PHP中空字符串和NULL都是以值为0存储的,但是他们的类型并不一样,你可以试一下echo gettype('');和echo gettype(NULL);你会发现他们打印出来的分别是string和NULL,当然还有0也容易混淆,你可以试试echo gettype(0);打印一下类型,会发现0的类型是integer(整型),可见字符串('')、NULL和0是“等值”但不等类型。
 
        5.isset和 empty的区别
        从字面意思上我们就可以明白:empty是判断一个变量是否为“空”,而isset 则是判断一个变量是否已经设置。但是这里有一点绝对要注意起来:当一个变量值为0,empty 认为这个变量同等于空,即相当于没有设置。比如当我们检测$id 变量的时候,当$id=0 ,用empty和isset来检测变量$id是否已经配置,两都将返回不同的值:empty 认为没有配置,isset 则能够取得 $id 的值。
 
        6.==(等)和===(恒等)的区别
        ==只是比较值是否相等,而===则不但比较值,还会比较类型,更为严格。
 
        7.self :: 和 this-> 的区别
        在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。
        另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this。
 
        8.strstr() 与 strpos() 的区别
        stristr() 不区分大小写, strstr() 区分大小写。
        函数查找字符串在另一个字符串中第一次出现的位置。
        如果成功,则返回字符串的其余部分(从匹配点)。如果没有找到该字符串,则返回 false。
 
        stripos() 不区分大小写, strpos() 区分大小写
        函数返回字符串在另一个字符串中第一次出现的位置。
        如果没有找到该字符串,则返回 false。
        经测试证明如果只是单纯查找判断是否存在则strpos()的执行效率要大于strstr()。

上一篇:PHP自定义函数判断是否手机访问

下一篇:API设计的十大原则

扫一扫,更多精彩内容推送

PHP技术分享

分享PHP技术,前端技术,数据库,SEO优化,服务器,网络安全等知识,是php程序员工作学习的好帮手!

Copyright © 2013-2015.PHP技术分享 www.php520.cn  版权所有  网站地图    PHP学习交流群

免责声明:网站内容收集于互联网,本网站不承担任何由于内容的合法性及健康性所引起的争议和法律责任。

欢迎大家对网站内容侵犯版权等不合法和不健康行为进行监督和举报。 沪ICP备15014499号-2