您的位置:首页 > 职场人生

PHP面试题总结归纳(一)

2017-03-08 14:48 267 查看
2017的国际女神节,虽然和我没什么关系,上午10点参加了第N次面试后回来,坐在出租屋的写字桌前,心情也是极其的复杂。其实作为一名初次进入互联网IT行业的小白来说,每一次面试,总给我一种胆战心惊的感觉。虽然自己可以写一些模块,但现在的大环境,需要的并不是这一类人。希望接下来,自己可以遇见等待已久的那个机会。加油!搜了一些面试宝典,好好总结学习一下。

一、get和post的区别

1.get和post都是从表单中像数据库中提交数据的两种方式,其中get的提交数据时,会把相关数据信息显示在url中,其中传递的值和表单中的各个字段一一对应。而post是通过http post机制,将表单内各个字段与其内容放置在HTML header内一起传送到action属性所指的URL地址。用户看不到这个过程。

2.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。

3.安全性能方面显然post更好。但执行效率上get更好。

二、session和cookie的区别

1.cookie数据是存放在客户端的浏览器上,session数据放在服务器上。

2.cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie解析从而获取用户信息。

3.session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能,如果考虑到要减轻服务器性能方面,应该使用cookie。

4.单个cookie保存的数据不能超过4kb,很多浏览器都限制一个站点最多保存20个cookie。

关于会话机制的具体详解,参考了一位博主的一篇博客http://blog.csdn.net/fangaoxin/article/details/6952954/感觉很详细,感兴趣的同学可以好好参考一下。

三、数据库中的事务是什么?

事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:

原子性

事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

一致性

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。

隔离性

由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。

持久性

事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

begin 开始一个事务

rollback事务回滚

commit事务确认

注:rollback和commit不能并列使用,当同时使用时,只有前面一个生效    

MYSQL默认是自动提交的       可以通过set autocommit=0 来设置 禁止自动提交         可以通过set autocommit=1 来设置 开启自动提交

四、关于PHP打印日期
<?php

echo date('Y-m-d H:i:s',strtotime('-1day'));//前一天

echo‘<br>’;

echo date('Y-m-d H:i:s',strtotime('-1week'));//前一周

echo'<br>';

echo date('Y-m-d H:i:s');//现在的时间

echo'<br>'

echo date('Y-m-d H:i:s',strtotime('next Monday'));//下一个星期一

echo'<br>';

echo date('Y-m-d H:i:s',strtotime('last Monday'));//上一个星期一

echo "现在的时间是:".date(h:i:s a);//a-小写的上午和午后(am 或pm)

?>

时间差的计算

<?php

$startdate =strtotime("2012-01-01");

$enddate=strtotime("2012-02-04");

$days=round(($enddate-$startdate)/86400)+1;

echo $days;

?>

五、能使HTML和PHP分离开的模板

smarty ,phptal ,template、PHPlib Template、FastTemplate

六、echo(),print(),print_r()的区别

echo
可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。

print()
函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。

printf()

printf()源于C语言中的printf()。该函数输出格式化的字符串。

print_r()和var_dump()

print_r()可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: