网络上流传很广的一部分php工程师面试题目,有些phper们认为这些很形式,天下面试题目一大抄,不能考核一个人的真实水平,其实细细研究起来,无论怎样,能存在就表明其有存在的价值,在此做小编,以待今后细细研究。
一.基础篇
1.表单中 get与post提交方法的区别?
答:get用户端将数据加到URL后,格式为”?字段1=输入数据1&字段2=输入数据2&...\"。
由于get提交参数后会在地址栏中显示出来,所以会产生严重的安全问题。
get传输的数据量小,get传输的数据量小,这主要是因为受url长度限制;而post可以传输大量的数据。
get限制表单中数据集的范围为asc2码,而post可以支持整个iso10646字符集。
2.session与cookie的区别?
答:cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
3.数据库中的事务是什么?
答:事务就是一系列的操作,这些操作完成一项任务。只要这些操作里有一个操作没有成功,事务就操作失败,发生回滚事件。即撤消前面的操作,这样可以保证数据的一致性。而且可以把操作暂时放在缓存里,等所有操作都成功有提交数据库,这样保证费时的操作都是有效操作。
4. echo count("abc"); 输出什么?
答:"1"
count —计算数组中的单元数目或对象中的属性个数
int count (mixed$var [, int$mode ] ), 如果 var 不是数组类型或者实现了Countable 接口的对象,将返回 1,有一个例外,如果 var 是NULL 则结果是 0。
对于对象,如果安装了 SPL,可以通过实现Countable 接口来调用 count()。该接口只有一个方法 count(), 此方法返回 count() 函数的返回值。
5. 用PHP写出显示客户端IP与服务器IP的代码
答:$_SERVER['SERVER_ADDR']服务器
$_SERVER['REMOTE_ADDR']客户端
<?php $hosts = gethostbynamel('www.phpzc.com'); echo $hosts[0]; //服务器端ip echo $_SERVER['REMOTE_ADDR']; //客户端ip ?>
6. error_reporting(2047)什么作用?
答:PHP 显示所有错误 E_ALL
7. echo,print()和print_r()有什么区别?
答:echo是一个语言结构,没有返回值。
print是一个函数,返回int类型的值。[只能打印int string]
print_r()是一个函数,返回bool类型值,按结构输出变量的值。打印关于变量的易于理解的信息[数组、对象等]
8. 打开php.ini中的Safe_mode,会影响哪些函数?至少说出6个。
答:1:用户输入输出函数(fopen() file()require(),只能用于调用这些函数有相同脚本的拥有者)
2:创建新文件(限制用户只在该用户拥有目录下创建文件)
3:用户调用popen() systen()exec()等脚本,只有脚本处在safe_mode_exec_dir配置指令指定的目 录中才可能
4:加强HTTP认证,认证脚本拥有者的UID的划入认证领域范围内,此外启用安全模式下,不会设置PHP_AUTH
5:mysql服务器所用的用户名必须与调用mysql_connect()的文件的拥有者用户名相同
6:受影响的函数变量以及配置命令达到40个
9. MySQL数据库,怎么优化?
答:(1)配置优化(服务器配置)
调节服务器参数(shell->mysqld-help 生成mysql配置选项和可配置变量的表)。
(2)建表优化(表、字段设置)
(3)查询优化(sql语句)
10. include和require的区别是什么?
答:当引用一个外部文件时,如果这个文件打开出错,require将直接中止程序, 并抛出一个Fatal Error,而include只会抛出一个warning,并继续执行include下面的语句.