php简单面试题小结
本文主要和大家分享php简单面试题小结,希望能帮助到大家。
1 . echo 、print、print_r 的区别:
echo 是 php 语句,可以输出一个或者多个字符串,无返回值。
print、print_r 是函数,有返回值。
print() 只能打印出简单类型变量的值(如 int,string) ,print_r()可以打印出复杂类型变量的值(如数组,对象) ,echo 输出一个或者多个字符串
2 . 魔术常量
名称 | 含义 |
---|---|
__LINE__ | 文件中的当前行号。 |
__FILE__ | 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 |
__DIR__ | 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。 |
__FUNCTION__ | 函数名称 |
__CLASS__ | 类的名称 |
__TRAIT__ | Trait 的名字,Trait 名包括其被声明的作用区域(例如 Foo\Bar)。 |
__METHOD__ | 类的方法名 |
__NAMESPACE__ | 当前命名空间的名称(区分大小写)。 |
3 .
1 . echo 、print、print_r 的区别:
echo 是 php 语句,可以输出一个或者多个字符串,无返回值。
print、print_r 是函数,有返回值。
print() 只能打印出简单类型变量的值(如 int,string) ,print_r()可以打印出复杂类型变量的值(如数组,对象) ,echo 输出一个或者多个字符串
2 . 魔术常量
名称 | 含义 |
---|---|
__LINE__ | 文件中的当前行号。 |
__FILE__ | 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 |
__DIR__ | 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。 |
__FUNCTION__ | 函数名称 |
__CLASS__ | 类的名称 |
__TRAIT__ | Trait 的名字,Trait 名包括其被声明的作用区域(例如 Foo\Bar)。 |
__METHOD__ | 类的方法名 |
__NAMESPACE__ | 当前命名空间的名称(区分大小写)。 |
3 .get和post的区别
1.get和post都是从表单中像数据库中提交数据的两种方式,其中get的提交数据时,会把相关数据信息显示在url中,其中传递的值和表单中的各个字段一一对应。而post是通过http post机制,将表单内各个字段与其内容放置在HTML header内一起传送到action属性所指的URL地址。用户看不到这个过程。
2.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
3.安全性能方面显然post更好。但执行效率上get更好。
4. 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/感觉很详细,感兴趣的同学可以好好参考一下。
5.数据库中的事务是什么?
事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:
原子性
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。
隔离性
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
持久性
事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。
begin 开始一个事务
rollback事务回滚
commit事务确认
注:rollback和commit不能并列使用,当同时使用时,只有前面一个生效
MYSQL默认是自动提交的 可以通过set autocommit=0 来设置 禁止自动提交 可以通过set autocommit=1 来设置 开启自动提交
6.关于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; ?>
6.能使HTML和PHP分离开的模板
smarty ,phptal ,template、PHPlib Template、FastTemplate
相关推荐:
以上就是php简单面试题小结的详细内容,更多请关注其它相关文章!