PHP面试题2019年奇虎360面试题及答案解析
一、单选题(共29题,每题5分) 1.以下代码 a.php 输出的结果是? a.php 的代码如下: ? ?b.php的代码如下: A、foo in a B、什么也不输出 C、报错 D、foo in b 参考答案:C 答案解析: 答案是C 想让大家思考的是、为什么在b里边使用了return、依然可以找到foo函数的定义、并且报错 Cannot redeclare foo() ? 因为php是在运行之前先解释执行、为避免表述不精确、附上文档原文:Note that because PHP processes the file before running it,any functions defined in an included file will still be available,even if the file is not executed. ? 2.php中单引号和双引号包含字符串的区别正确的是? A、单引号速度快,双引号速度慢 B、双引号速度快,单引号速度慢 C、单引号里面可以解析转义字符 D、双引号里面可以解析变量 参考答案:D 答案解析:在PHP定义字符串的时候,单引号和双引号没有速度差别,但是单引号中的字符全部是原样输出,而双引号可以解析变量和转义字符。 ? 3.在SQL语言中,子查询是? A、选取单表中字段子集的查询语句 B、选取多表中字段子集的查询语句 C、返回单表中数据子集的查询语言 D、嵌入到另一个查询语句之中的查询语句 参考答案:D 答案解析:嵌套SELECT语句也叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值。子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个临时表使用,也能够出现在select list中,作为一个字段值来返回。 ? 4.mb_作为前缀的函数作用是? A、按照字节获取长度 B、按照字符获取长度 C、按照厘米获取长度 D、按照公分获取长度 参考答案:B 答案解析:按照字符获取长度。 ? 5.PHP的垃圾收集机制,说法错误的是? A、PHP使用的回收算法是引用计数法,每个php变量存在一个叫"zval"的变量容器中。 B、一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是"is_ref",是个bool值,用来标识这个变量是否是属于引用集合(reference set)。 第二个额外字节是"refcount",用以表示指向这个zval变量容器的变量(也称符号即symbol)个数。 C、把一个变量赋值给另一变量不会增加引用次数(refcount) 当任何关联到某个变量容器的变量离开它的作用域(比如:函数执行结束),或者对变量调用了函数 unset()时,"refcount"就会减1 D、变量容器在"refcount"变成0时就被销毁 参考答案:C 答案解析:把一个变量赋值给另一变量将增加引用次数(refcount)。 ? 6.以下哪种病毒是通过操作系统漏洞传播的 A、QQ尾巴 B、传奇杀手 C、性感烤鸡 D、冲击波 参考答案:D 答案解析:暂无 ? 7.假设某网站www.exploit.com存在文件上传漏洞,php语言编写,... 假设某网站www.exploit.com存在文件上传漏洞,php语言编写,根目录是C:wwwroot,现构造文件名test.php上传到服务器目录C:wwwrootupload下,内容为, 请问下面的哪条url能够在服务器成功执行whoami命令? A、http://www.exploit.com/upload/test.php?cmd=system('whoami'); B、http://www.exploit.com/test.php?cmd=system('whoami'); C、http://www.exploit.com/upload/test.php?cmd=whoami D、http://www.exploit.com/upload/test.php?eval=system('whoami'); 参考答案:A ? 8.关于数据库的读写分离,假设某数据库的工作负载为20%的写,80%的读,并有如下的前提: 1)读和写查询消耗同样的资源。 2)所有的服务器的配置相同。 3)可以把所有的读操作全都转移到从库。 那么如果一个服务器每秒可以支持1000的查询,那么需要增加多少从库才能将负载增加到2000? A、1台 B、2台 C、3台 D、4台 参考答案:C 答案解析:此问题关键点在于增加的从库也是需要承担写操作的,因为需要通过binlog完成同步。所以每增加一台从库实际是只能承担600的读操作,因为留出400的写操作。那么2000的负载中有1600的写操作,需要3台才能完全消耗。 ? 9.下面那个不是mysql存储引擎的锁类型? A、表锁 B、页锁 C、行锁 D、无 参考答案:B 答案解析:mysql中myisam是有表锁,innodb是行锁,基于索引加锁,如果where条件没有索引,是所有行加锁;sql server才有页锁。 ? 10.php中关于字符串处理函数以下说法正确的是? A、implode( )方法可以将字符串拆解为数组 B、str_replace()可以替换指定位置的字符串 C、substr( )可以截取字符串 D、strlen( )不能取到字符串的长度 参考答案:C 答案解析:implode()方法是将数组连接为字符串,explode()方法是将字符串拆解为数组 str_replace()是用指定字符替换原字符串中的某些字符,替换指定位置字符串的方法是 substr_replace() substr()可以截取字符串,如果截取中文字符串可以用mb_substr() 获取字符串长度的方法为strlen() 综上,C选项是正确的 很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家(11年架构师带你解读年薪50万面试通关秘籍。) 如果喜欢我的文章,想与一群资深开发者一起交流学习的话,获取更多相关大厂面试咨询和指导,欢迎加入我的学习交流群点击此处PHP高级交流 ? 11.在 bash 中,在一条命令后加入 "1>&2" 意味着? A、标准错误输出重定向到标准输入 B、标准输入重定向到标准错误输出 C、标准输出重定向到标准错误输出 D、标准输出重定向到标准输入 参考答案:C 答案解析:Linux 中有三个系统文件描述符: 0:标准输入; 1:标准输出; 2:标准错误输出。 ? (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |