php面试题总结及答案(持续更新)

来源:互联网 发布:网络电视要多少带宽 编辑:程序博客网 时间:2024/06/01 08:51

1、表单提交get和post有何区别?

答:get的方式是把数据在地址栏中发送,get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
2、echo(),print(),print_r()的区别

echo可以接多个参数,print只能接一个参数,它们都是PHP的语言结构,print_r是递规打印,用来打印数组或对象
3、能够使HTML和PHP分离开使用的模板

smarty,phplib,SmartTemplate
4、使用哪些工具进行版本控制?

VSS,CVS,SVN


1、return 语句的作用

  (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。   (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致。   (3) return 当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值。

2、break语句的作用
(1) 只能在循环体内和switch语句体内使用break语句。
(2) 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
(3) 当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。
(4) 在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环。

3、continue语句作用
(1) continue语句的一般形式为:contonue;
(2) 其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
(3) 注意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分 ,然后决定循环是否继续进行。
(4) 在for 循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3”求值,然后进行“表达式2”的条件测试,最后根据“表达式2”的值来决定for循环是否执行。在循环体内,不论continue是作为何种语句中的语句成分,都将按上述功能执行,这点与break有所不同。

What’s the difference between sort(), asort() and ksort(),rsort()? Under what circumstances would you use each of these?

.What is the difference between include & include_once? include & require

require:PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。常用的函式,亦可以这个方法将它引入网页中。错误产生致命错误。include:这个函式一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。错误产生警报。include_once:此行为和include()语句类似,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含。如同此语句名字暗示的那样,只会包含一次。
What function can you use to open a file for reading and writing?(答案3,注意其他三个的区别)1. fget();2. file_open();3. fopen();4. open_file();

(区别:)
GD库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
GD库在PHP中,通过GD库处理图像的操作,都是先在内存中处理,操作完成以后再以文件流的方式,输出到浏览器或保存在服务器的磁盘中。创建一个图像应该完成如下所示的四个基本步骤。

(1)创建画布:所有的绘图设计都需要在一个背景图片上完成,而画布实际上就是在内存中开辟的一块临时区域,用于存储图像的信息。以后的图像操作都将基于这个背景画布,该画布的管理就类似于我们在画画时使用的画布。

(2)绘制图像:画布创建完成以后,就可以通过这个画布资源,使用各种画像函数设置图像的颜色、填充画布、画点、线段、各种几何图形,以及向图像中添加文本等。

(3)输出图像:完成整个图像的绘制以后,需要将图像以某种格式保存到服务器指定的文件中,或将图像直接输出到浏览器上显示给用户。但在图像输出之前,一定要使用header()函数发送Content-type通知浏览器,这次发送的是图片不是文本。

(4)释放资源:将图像被输出请说明在php.ini中safe_mode开启之后对于PHP系统函数的影
以后,画布中的内容也不再有用。出于节约系统资源的考虑,就需要及时清除画布占用的所有内存资源。

请说明在php.ini中safe_mode开启之后对于PHP系统函数的影响
启用了PHP的安全模式后:
有一些函数会被屏蔽,如dl() 、shell_exec()等。
一些函数在执行时会检查被操作的文件或者目录与正在执行的脚本是否有相同的UID, 在safe_mode_gid设置的情况下会放宽到检查GID
safe_mode_include_dir设置的目录及其子目录(目录必须在 include_path 中或者用完整路径来包含)包含文件时越过 UID/GID 检查。
指定的限制实际上是一个前缀,而非一个目录名。这也就是说“safe_mode_include_dir = /dir/incl”将允许访问“/dir/include”和“/dir/incls”,如果它们存在的话。如果希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线,例如:“safe_mode_include_dir = /dir/incl/”。
有些函数只能在safe_mode_exec_dir设置的目录下执行操作如exec()、system()、passthru()、popen()
有些函数不在起作用如set_time_limit()、max_execution_time

PHP5中魔术方法函数有哪几个,请举例说明各自的用法

__sleep 在serialize()序列化对象之前会调用这个函数
__wakeup 在unserialize()解序列化之前调用这个函数
__toString 当将对象转化为字串的时候调用这个函数
__construct 构造函数,实例化一个对象的时候调用
__destruct 析构函数,当对象实力被释放的时候调用
__call, 当调用类中没有的方法时会调用此函数
__get, 当访问一个类中没有的属性时调用
__set, 当设置一个类中没有的属性的值时调用
__isset, 调用外部的isset函数检查类是否有某个属性时调用
__unset , 删除类的某个属性时调用
__set_state, 使用var_export导出对象的属性和值时调用
__clone 复制某个类的实例时调用
__autoload 当使用一个类而这个类还未被加载时会被自定调用

1、$arr = array(\james\, \tom\, \symfony\); 请打印出第一个元素的值 答:echo $array[0];
2、请将1题的数组的值用\,\号分隔并合并成字串输出答:for($i=0;$i<count($array);$i++){ echo $array[$i].",";}
3$a = \abcdef\; 请取出$a的值并打印出第一个字母答:echo $a{0} 或 echo substr($a,0,1)
4、pHp可以和sql server/oracle等数据库连接吗?答:可以
5、请写出pHp5权限控制修饰符答:public(公共),private(私用),protected(继承)
6、请写出php5的构造函数和析构函数答:__construct , __destruct ```用PHP写出显示客户端IP与服务器IP的代码 答:打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR'); 打印服务器IP:echo gethostbyname("www.bolaiwu.com") ``` ```请说明php中传值与传引用的区别。什么时候传值什么时候传引用? 答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。 按引用传递则不需要复制值,对于性能提高很有好处。 ``` ``` JS的转向函数是?怎么引入一个外部JS文件? 答:window.location.href,<script type="text/javascript" src="js/js_function.js"></script> ``` ``` 如何使用下面的类,并解释下面什么意思? class test{ function Get_test($num){ $num=md5(md5($num)."En"); return $num; } } 答:$testnum = "123"; $object = new test(); $encrypt = $object->Get_test($testnum); echo $encrypt; 类test里面包含Get_test方法,实例化类调用方法多字符串加密 ```
0 0
原创粉丝点击