echo、print_r、print、var_dump之间的区别

  • echo、print是php语句,var_dump和print_r是函数
  • echo 输出一个或多个字符串,中间以逗号隔开,没有返回值是语言结构而不是真正的函数,因此不能作为表达式的一部分使用
  • print也是php的一个关键字,有返回值 只能打印出简单类型变量的值(如int,string),如果字符串显示成功则返回true,否则返回false* print_r 可以打印出复杂类型变量的值(如数组、对象)以列表的形式显示,并以array、object开头,但print_r输出布尔值和NULL的结果没有意义,因为都是打印”\n”,因此var_dump()函数更适合调试
  • var_dump() 判断一个变量的类型和长度,并输出变量的数值

常见的HTTP状态码:

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转义到其他URL
  • 404 - 请求的资源(网页等)不存在
  • 505 - 内部服务器错误

HTTP状态码分类:

  • 1** - 信息,服务器收到的请求,需要请求者继续执行操作
  • 2** - 成功,操作被成功接收并处理
  • 3** - 重定向,需要进一步的操作以完成请求
  • 4** - 客户端错误,请求包含语法错误或者无法完成请求
  • 5** 服务器错误,服务器在处理请求的过程中发生了错误

语句include和require的区别是什么?为避免多次包含同一文件,可以用(?)语句代替他们

require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行

include有返回值,而require没有(可能因为如此require的速度比include快),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去

注意:包含文件不存在或者语法错误的时候require是致命的,而include不是

require_once表示了只包含一次,避免了重复包含

include和require的区别其实主要有三点

1 加载失败的处理方式不同
include与require除了在处理引入文件的方式不同外,最大的区别就是:include在引入不存文件时产生一个警告且脚本还会继续执行,
require则会导致一个致命性错误且脚本停止执行。

2 include()是有条件包含函数,而 require()则是无条件包含函数。

1
2
3
if(FALSE){
include 'file.php'; //file.php不会被引入
}

1
2
3
if(FALSE){
require 'file.php'; //file.php将会被引入

3 文件引用方式
include有返回值,而require没有

1
2
3
4
5
6
$retVal = include("somefile.php");
if(!empty($retVal)){
echo "文件包含成功";
}else{
echo "文件包含失败";
}

include()执行时需要引用的文件每次都要进行读取和评估,require()执行时需要引用的文件只处理一次(实际上执行时需要引用的文件内容替换了require()语句),可以看出若有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高,若每次执行代码时相读取不同的文件或者有通过一组文件叠代的循环,就使用include(),require通常使用方法,这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

include通常使用方法,这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

另外关于include和require后面是否加括号的问题,理论上来说:include和require后面加不加括号对执行结果没有区别,但是加上括号效率较低,所以后面能不加括号就不加括号。

sset、empty、is_null的区别

isset 判断变量是否定义或者是否为空

1
2
3
变量存在返回ture,否则返回false
变量定义不赋值返回false unset一个变量,返回false
变量赋值为null,返回false

empty:判断变量的值是否为空,能转换为false的都是空,为空返回true,反之返回false。

1
2
"",0,"0",NULL,FALSE都认为为空,返回true
没有任何属性的对象都认为是空

is_null:检测传入的值(值、变量、表达式)是否为null

1
2
定义了,但是赋值为Null
定义了,但是没有赋值 unset一个变量

验证电子邮件的格式函数(正则)

preg_match(‘/^[\w-.]+@[\w-]+(.\w+)+$/‘,$email);