PHP常常简单记乱的知识[网站编程]
本文“PHP常常简单记乱的知识[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1.echo和print的辨别
PHP中echo和print的功效基本相同(输出),但是二者之间还是有渺小差别的.echo输出后没有返回值,但print有返回值,当其履行失利时返回flase.因此可以作为一个普通函数来利用,比方履行下面的代码后变量$r的值将为1.
$r = print "Hello World";
这意味着print可用在一些复杂的表达式中,而echo则不行.但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句.
2.include与require的辨别
include()与require()的功效也基本相同(包含),但在用法上也有一些差别,include()是有条件包含函数,而require()则是无条件包含函数.比方在下面代码中,假如变量$a为真,则将包含文件a.php:
if($a){
include("a.php");
}
而require()则和include()差别,不管$a取何值,下面的代码将把文件a.php包含进文件里:
if($a){
require("a.php");
}
在错误处理方面,利用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 的值,看下边例子:
$id=0;
empty($id)?print "我是空的":print "我是$id ."; //后果:我是空的
!isset($id)?print "我是空的":print "我是$id .";//后果:我是0
6.==(等)和===(恒等)的辨别
回想上面第四条空字符串("")和NULL的辨别,再来看一个例子:
'' == NULL;
'' === NULL;
运行之后你会发现第一个为true,而第二个则为false!可见==只是对比值能否相等,而===则不但对比值,还会对比范例,更为严峻.
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()
9.PHP中 HTTP_HOST 和 SERVER_NAME
相同点:
当满意以下三个条件时,二者会输出相同信息.
1. 服务器为80端口
2. apache的conf中ServerName设置精确
3. HTTP/1.1协议标准
差别点:
1. 普通情形:
_SERVER["HTTP_HOST"] 在HTTP/1.1协议标准下,会按照客户端的HTTP恳求输出信息.
_SERVER["SERVER_NAME"] 默许情形下直接输出apache的配置文件httpd.conf中的ServerName值.
2. 当服务器为非80端口时:
_SERVER["HTTP_HOST"] 会输出端口号,比方:mimiz.cn:8080
_SERVER["SERVER_NAME"] 会直接输出ServerName值
因此在这种情形下,可以理解为:HTTP_HOST = SERVER_NAME : SERVER_PORT
3. 当配置文件httpd.conf中的ServerName与HTTP/1.0恳求的域名不一致时:
httpd.conf配置以下:
ServerName mimiz.cn
ServerAlias www.mimiz.cn
客户端拜候域名www.mimiz.cn
_SERVER["HTTP_HOST"] 输出 www.mimiz.cn
_SERVER["SERVER_NAME"] 输出 mimiz.cn
所以,在实际程序中,应尽大概利用_SERVER["HTTP_HOST"] ,对比保险和坚固.
假如在端口映射的情形下,并且在内网拜候,用“$_SERVER['HTTP_X_FORWARDED_HOST']”对比好.
原文地址:http://www.cnblogs.com/qibuweb/archive/2012/02/21/2362009.html
以上是“PHP常常简单记乱的知识[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:一个新手的学习总结
- ·下一篇文章:10 个有意思的 PHP 教程
- ·中查找“PHP常常简单记乱的知识”更多相关内容
- ·中查找“PHP常常简单记乱的知识”更多相关内容