基础
1、请说明 PHP 中传值与传引用的区别,什么时候传值什么时候传引用?
传值:函数范围内的操作,在函数外对值没有影响
引用:函数范围内的操作,会改变原来的值
利弊:
传值必须要先进行复制;对大型字符串和对象来说,这是很大的代价
引用不需要复制,对提升性能有好处
2、MySQL数据库中的字段类型varchar和char的主要区别是什么?
区别:
char是定长,最大存255个字符
varchar是变长,最大存65532个字符
利弊:
char的存取比varchar快;varchar比char节省空间。
(char如果插入的长度小于定义长度时,则用空格填充;varchar小于定义长度时,还是按实际长度存储,插入多长就存多长)
3、什么是事务,以及事务的特性?
程序中一系列的操作,必须全部完成,否则将会被全部撤销
事务的四个特性:
原子性:操作程序时要么全部成功,要么全部不执行;只要有一个操作失败,所有操作都会失败,数据进行回滚,回到执行前的状态。
一致性:事务的执行使数据从一个状态转换为另一个状态,但是对于整个数据的完整性保持不变。
eg:拿转账来说,假设用户A和用户B两者的钱加起来一共是20000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是20000,这就是事务的一致性。
隔离性:任意并发的两个事务T1和T2;在T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始
持久性:当事务正确完成后,它对于数据的改变是永久性的。
MySQL数据库的常用存储引擎以及它们的区别?
InnoDB 支持事务,MyISAM 不支持。
InnoDB 支持外键,MyISAM 不支持。
InnoDB 不保存表的具体行数,MyISAM 保存了整个表的行数
InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。(一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限)
SESSION 与 COOKIE的区别是什么?
表单中get和post提交方式的区别