No.2
1、写出代码运行结果:
class Myclass{ function add($b){ static $a=1; #static是关键 $a+=$b; return $a; } } $class=new Myclass(); for($i=0;$i<=5;$i++){ $c=$class->add($i); } echo $c; $step=3; function add($num){ global $step; $num+=$step; return $num; } echo add(3); class A{ public $a; } $obj=new A(); $obj2=$obj; $obj->a=1; $obj->a++; $obj2->a++; echo $obj->a,$obj2->a; 另,class A变成数组[1]时,结果是什么?如果放在js里,结果是什么?为什么?如何传值?如何传引用? $i=1; echo $i++; echo ++$i;
主要纠结在php底层应用上,话说回来,面试题代码都写在一行,看的我实在不舒服
2、列举出你知道的魔术函数
主要描述__clone()
3、php有哪些数据类型
忘记了null和资源类型
4、如何深度复制一个对象
clone,克隆出来的对象和原对象有什么区别?如果原对象是对一个数据库的封装,克隆出来的对象如何实现封装其他数据库
http://blog.csdn.net/sinat_29091823/article/details/72637192
5、empty、isset、is_null的区别,能否描述null是什么
null是什么,底层是怎么实现的
http://blog.csdn.net/ty_hf/article/details/70217267
http://blog.csdn.net/ty_hf/article/details/51057954
6、for、foreach、while的区别以及效率差异
考虑底层,效率?
7、php的垃圾回收机制
如果没有垃圾回收机制,如何防止内存溢出(引出22题总字节数的问题)
8、session如何实现跨服务器共享
9、某网页打开速度突然变慢,如何查找并定位原因
10、mysql优化方案
11、innodb和myisam的区别
聚集索引和非聚集索引,描述底层实现
锁表和锁行,innodb在什么时候也要锁表
脏读是如何实现的,事务的隔离级别,并举例详细说明每种隔离级别的实现以及锁机制
原数据100,事务A开启,-50,不提交不回滚,事务B如何读到100,50,以及等待
12、nginx和apache的区别
以及和php的通信方式
13、pdo、mysql、mysqli的区别
14、redis和memcache的区别,memcached是什么?一致性哈希是什么?
15、mysql支持集中join方式,区别是什么
16、描述 B-TREE、B+TREE、B*TREE
17、打印数据结构的方式
18、什么是xss,如何防止
19、什么是sql注入,如何防止
20、分别描述session和cookie,当客户端禁用cookie,session能否使用,如果可以,怎么使用
21、列举出常见的http状态码,并描述其原因
22、请写出数据类型(int,char,varchar,datetime,text)的意思,varchar和var的区别,int(11)和int(4)有什么区别?datetime和timestamp有什么区别?各占多少字节?
平时设计字段的时候,时间戳用什么类型?int还是timestamp还是datetime?有什么区别?为什么要用int?(所占空间不同,datetime 8字节)你觉得应该存时间戳还是存日期?哪个效率高?