PHP易混淆知识整理笔记_第1页
PHP易混淆知识整理笔记_第2页
PHP易混淆知识整理笔记_第3页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PHP易混淆知识整理笔记php经常会混淆的知识点有很多,例如include与require的区别; require_once()和include_once()语句等一些列的知识点,感觉这方面欠缺的朋友可以参考一下!1.echo和print的区别PHP中 echo 和print的功能基本相同( 输出 ) ,但是两者之间还是有细微差别的。echo 输出后没有返回值,但print有返回值,当其执行失败时返回flase 。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r 的值将为 1。这意味着 print 可用在一些复杂的表达式中,而 echo 则不行。但是,因为 echo 语句不要求返回

2、任何数值, 所已在代码中 echo 语句的运行效率要略微快于print语句。2.include与 require的区别include() 与 require() 的功能也基本相同 ( 包含 ) ,但在用法上也有一些不同, include() 是有条件包含函数,而 require() 则是无条件包含函数。例如在下面代码中,如果变量 $a 为真,则将包含文件 a.php :而 require()则和 include()不同,不管 $a 取何值,下面的代码将把文件 a.php 包含进文件里:在错误处理方面,使用include语句,如果发生包含错误,程序将跳过 include语句,虽然会显示错误信息但

3、是程序还是会继续执行! 但 requre 却会给你来个致命错误。当然,从字面意思上我们也可以理解七分:requre 是很强硬的请求、要求的意思。3.require_once()和 include_once()语句题外话了,因为长的像,简单 require_once()和 include_once()语句分别对应于require()和 include()语句。 require_once()和include_once()语句主要用于需要包含多个文件时,可以有效地避免把同一段代码包含进去而出现函数或变量重复定义的错误。4. 空字符串 ('') 和 NULL的区别PHP中空字符串和NU

4、LL都是以值为0 存储的,但是他们的类型并不一样,你可以试一下echogettype('');和echogettype(NULL);你会发现他们打印出来的分别是string和 NULL,当然还有0 也容易混淆,你可以试试echogettype(0);打印一下类型,会发现0 的类型是 integer( 整型 ) ,可见字符串 ('') 、NULL和 0 是“等值”但不等类型。5.isset和 empty 的区别从字面意思上我们就可以明白: empty 是判断一个变量是否为“空”,而 isset 则是判断一个变量是否已经设置。但是这里有一点绝对要注意起来:当一个变量

5、值为 0,empty 认为这个变量同等于空,即相当于没有设置。比如当我们检测 $id 变量的时候,当 $id=0 ,用 empty 和 isset 来检测变量 $id 是否已经配置,两都将返回不同的值: empty 认为没有配置, isset 则能够取得 $id 的值,看下边例子:6.=(等) 和=(恒等 ) 的区别回顾上面第四条空字符串("")和 NULL的区别,再来看一个例子:运行之后你会发现第一个为true ,而第二个则为 false!可见 =只是比较值是否相等,而=则不但比较值,还会比较类型,更为严格。7.self:和 this->的区别在访问 PHP类中的成

6、员变量或方法时,如果被引用的变量或者方法被声明成 const( 定义常量 ) 或者 static( 声明静态 ), 那么就必须使用操作符 :, 反之如果被引用的变量或者方法没有被声明成 const 或者 static, 那么就必须使用操作符 -> 。另外,如果从类的内部访问 const 或者 static 变量或者方法 , 那么就必须使用自引用的 self ,反之如果从类的内部访问不为 const 或者 static 变量或者方法 , 那么就必须使用自引用的 $this 。8.strstr()与 strpos()的区别stristr()不区分大小写 strstr()区分大小写函数查找字符

7、串在另一个字符串中第一次出现的位置。如果成功,则返回字符串的其余部分( 从匹配点 ) 。如果没有找到该字符串,则返回false 。stripos()不区分大小写 strpos()区分大小写函数返回字符串在另一个字符串中第一次出现的位置。如果没有找到该字符串,则返回false 。经测试证明如果只是单纯查找判断是否存在则strpos()的执行效率要大于 strstr()9.PHP中_HOST和 SERVER_NAME相同点:当满足以下三个条件时,两者会输出相同信息。1. 服务器为 80 端口2.apache的 conf 中 ServerName设置正确3./1.1协议规范不同点:1. 通常情况:_

8、SERVER"_HOST" 在/1.1 协议规范下,会根据客户端的请求输出信息。_SERVER"SERVER_NAME"默认情况下直接输出apache 的配置文件 d.conf 中的 ServerName值。2. 当服务器为非 80 端口时:_SERVER"_HOST" 会输出端口号,例如:mimiz.:8080_SERVER"SERVER_NAME"会直接输出 ServerName值因此在这种情况下,可以理解为:_HOST=SERVER_NAME:SERVER_PORT3. 当配置文件 d.conf 中的 ServerName与/1.0 请求的域名不一致时:d.conf配置如下:ServerNamemimiz.ServerAlias.mimiz.客户端访问域名 .mimiz._SERVER"_HOST" 输出 .mimiz._SERVER"SERVER_NAME"输出 mimiz.所以,在实际程序中,应尽量使用_SERVER&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论