文章插图
![php判断为空 php判断数据库值是否为空](http://img.hubeilong.com/220623/005AR107-0.jpg)
文章插图
PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的 。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase 。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1 。
$r
=
print
"Hello World"
;
2.include与require的区别
include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数 。例如在下面代码中,如果变量$a为真,则将包含文件a.php:
if
(
$a
){
include
(
"a.php"
);
}
if
(
$a
){
require
(
"a.php"
);
}
当然,从字面意思上我们也可以理解七分: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
回顾上面第四条空字符串(“”)和NULL的区别,再来看一个例子:
''
== NULL;
''
=== NULL;
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”],比较保险和可靠 。
【php判断为空 php判断数据库值是否为空】如果在端口映射的情况下,并且在内网访问,用“$_SERVER[‘HTTP_X_FORWARDED_HOST’]”比较好 。
- 华为双卡双待手机有哪些型号 华为双卡双待手机有哪几款
- 照片格式转换为pdf 照片格式转换成pdf格式
- 为什么男人更喜欢主动诱惑的女人 女人为什么喜欢男人主动
- 异地恋为什么分手这么快 异地恋因为什么分手
- AI怎么把图片转矢量 ai怎么将矢量图形描边转为轮廓
- 华为nova4参数表 华为nova4e详细参数配置
- 朱顶红为什么不能深埋
- 手机修改ip 华为手机如何修改ip地址
- 一问一答撩女生的小套路2019,为了人类繁衍去做贡献吧
- 华为mate 9参数配置 荣耀mate9参数配置