整理了一些PHP基础题库。问题1:编写以下程序的输出:$test='aaaaa';$abc=&$test;unset($test);echo$abc;//aaaaa//知识点:引用和传值问题2:讲解PHP中传值和传引用的区别,讲解什么时候传值,什么时候用引用传值:复制值一个变量并将其分配给另一个变量,并且更改任何变量的值都不会影响另一个变量。引用传递:将一个变量的值的内存地址传递给另一个变量。新变量只是引用原始变量。两个变量指向同一个值,变化会相互影响。对于较大的数据,按引用传递比较好,可以节省内存开销。问题3:编写以下程序的输出:$计数=5;函数get_count(){静态$count=0;返回$计数++;}回声$计数;//5++$计数;echoget_count();//0echoget_count();//1?>问题4:PHP在服务器端进行页面重定向使用的函数名header("Localtion:http://www.baidu.com");header("HTTP/1.0404NotFound");header('Content-type:application/pdf');header('Content-type:text/html;charset=urf-8');问题5:什么是面向对象?主要特点是什么?面向对象是程序的一种设计方法,有利于提高程序的复用性,使程序结构更加清晰。主要特点:封装、继承、多态问题六:SESSION和COOKIE有什么区别?请从协议上解释一下,原因和作用?1.http无状态协议,无法区分用户是否来自同一个网站,同一用户请求的不同页面不能视为同一用户。2、SESSION保存在服务器端,COOKIE保存在客户端。Session更安全,但是cookies可以通过一些手段修改,不安全。会话依赖于cookie进行传递。禁用cookies后session就不能正常使用了。Session的缺点:保存在服务器端,每次读取都要从服务器读取,消耗服务器资源。会话保存在服务器端的文件或数据库中。默认保存在一个文件中。文件路径由php配置文件中的session.save_path指定。Session文件是公开的问题7:简述Cookie的设置和获取过程设置COOKIE的值:Setcookie(name,value,storagetime,validdomain);获取值:$_COOKIE['name'];问题八:HTTP状态302、403、500、200、404、502代码含义?一、二、三、四、五原则:1.消息系列2.成功系列3.重定向系列4.请求错误系列5.服务器端错误系列302:临时传输成功,请求的内容已传输到新的location403:Forbidden500:内部服务器错误401表示未经授权。北京市昌平区建财城西路金燕龙写字楼一层电话:400-618-9090200表示请求成功,404表示找不到文件,502表示服务器内部错误问题9:请写入数据type(intcharvarchardatetimetext)含义;varchar和char有什么区别?IntIntegerchar定长字符Varchar变长字符Datetime日期和时间Text文本类型Varchar和char的区别Char是定长字符类型,分配多少空间就占用多少空间。Varchar是变长字符类型,内容有多少就占用多少空间,可以有效节省空间。varchar是变长,节省存储空间,char是定长。查找效率比char类型快,因为varchar是不定长的,必须先查找长度,然后再提取数据,比char定长类型多了一步,所以效率是降低。问题10:编写如下预定义的全局变量作用?$_SERVER['DOCUMENT_ROOT']//当前运行脚本的文档根目录$_SERVER['HTTP_HOST']//当前请求的Host:header的内容$_SERVER['REMOTE_ADDR']//用户谁在浏览当前页面IP地址$_SERVER['HTTP_REFERER']//当前页面链接的上一个页面的URL地址$_SERVER['SERVER_NAME']//当前运行脚本的服务器主机名$_FILES//包括所有上传的文件信息S_FILES['userfile']['name']//客户端机器文件的原始名称$_FILES['userfile']['type']//文件的MIME类型,如果浏览器提供此信息,例如“image/gif”。北京市昌平区建财城西路金燕龙写字楼一层电话:400-618-9090$_FILES['userfile']['size']//上传文件的大小,以字节为单位$_FILES['userfile']['tmp_name']//文件上传后保存在服务器的临时文件名$_FILES['userfile']['error']//文件上传相关的错误码问题11:包括和require可以把另一个文件包含到当前文件中,它们有什么区别?Include和include_once有什么区别?两者只有一个区别,那就是对包含文件的需求程度。include的意思是包容。如果包含的文件不存在,会提示错误,但程序会继续执行。并且需要意味着需要。如果包含的文件不存在或无法打开,将提示错误并终止程序的执行。除了如何处理故障外,这两个结构是相同的。once表示一次,那么include_once和require_once表示只包含一次,避免重复包含。问题12:请解释一下php中按值传递和按引用传递的区别。什么时候按值传递,什么时候按引用传递?默认情况下,变量始终按值分配。也就是说,当将一个表达式的值赋给一个变量时,会将整个原始表达式的值赋给目标变量。这意味着,例如,当一个变量的值被分配给另一个变量时,改变一个变量的值不会影响另一个变量。PHP还提供了另一种给变量赋值的方式:引用赋值。这意味着新变量只是引用(换句话说,“别名”或“指向”)原始变量。更改新变量将影响原始变量,反之亦然。要使用引用赋值,只需在要赋值的变量(源变量)前加上一个&符号。默认情况下,对象是按引用传递的。对于较大的数据,按引用传递比较好,可以节省内存开销。问题13:PHP中有3种写注释的方式?//注释内容C风格的单行注释#注释内容Unix风格的单行注释/*注释内容*/C风格的多行注释问题14:PHP是什么意思,可以做什么?PHP(HypertextPreprocessor,超文本预处理器的首字母缩写)是一种应用广泛的开源多用途脚本语言,可以嵌入到HTML中,特别适用于网页开发。PHP无所不能。PHP主要用于服务器端脚本程序,因此你可以用PHP来完成任何其他CGI程序可以完成的工作,例如收集表单数据、生成动态网页或发送/接收Cookies。但PHP远不止于此。PHP脚本主要用于以下三个方面:1)服务器端脚本。这是PHP最传统也是最主要的目标领域。2)命令行脚本。可以编写PHP脚本而不需要任何服务器或浏览器来运行它。这样只需要PHP解析器就可以执行了。3)编写桌面应用程序。问题15:用PHP编写显示客户端IP和服务器IP的代码。客户端IP:$_SERVER["REMOTE_ADDR"]服务器IP:$_SERVER["SERVER_ADDR"]问题16:简述如何获取当前执行脚本的路径,包括获取的参数。获取当前执行的脚本路径使用$_SERVER["SCRIPT_FILENAME"]或__FILE__获取参数,使用$_SERVER["QUERY_STRING"]问题17:表单中get和post提交方式有什么区别?1、get是将参数数据队列添加到提交表单的ACTION属性所指向的URL中,其值与表单中的各个字段一一对应,在URL中可以看到。Post是将表单中的各个字段及其在HTMLHEADER中的内容通过HTTPpost机制发送到ACTION属性所指示的URL地址。用户看不到这个过程。2、对于get方法,服务端使用Request.QueryString获取变量的值,对于post方法,服务端使用Request.Form获取提交的数据。3、get传输的数据量小,不能超过2KB。post传输的数据量比较大,一般默认为无限制。但理论上,IIS4最大为80KB,IIS5最大为100KB。get的安全性很低,post的安全性很高。问题18:echo()、print()、print_r()有什么区别?echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即使没用)。print()只能打印出简单类型变量(如int、string)的值print_r()可以打印出复杂类型变量(如数组、对象)的值echo输出一个或多个字符串问题19:什么是面向对象和应用场景中接口和抽象类的区别?1、具有抽象方法的类称为抽象类。必须有抽象方法,并且必须使用abstract关键字定义抽象方法。2.所有的接口都是抽象方法,方法不需要用abstract定义。3、多个同类型的类需要设计一个上层时,通常设计为抽象类。当多个异构类需要设计一个上层时,通常设计为一个接口。问题20:描述HTTP和HTTPS的区别?HTTPS协议需要向CA申请证书。一般免费证书很少,需要收费。http是超文本传输??协议,信息以明文传输,而https是安全的ssl加密传输协议。http和https使用完全不同的连接方式和不同的端口。前者是80,后者是443。http连接很简单,它是一个无状态的HTTPS协议,是由SSL+HTTP协议构建的可以进行加密传输和身份认证的网络协议,比http协议更安全
