一、单选题(共29题,每题5分)

PHP360教学2019年360PHP工程师面试题 PHP

1.以下代码 a.php 输出的结果是?a.php 的代码如下:<?php function foo() { echo 'foo in a'; } include 'b.php'; foo();b.php的代码如下:<?php return; function foo() { echo 'foo in b'; } 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:\wwwroot\upload下,内容为,叨教下面的哪条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');参考答案:A8.关于数据库的读写分离,假设某数据库的事情负载为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.在 bash 中, 在一条命令后加入 \"大众1&gt;&2\"大众 意味着? A、标准缺点输出重定向到标准输入 B、标准输入重定向到标准缺点输出 C、标准输出重定向到标准缺点输出 D、标准输出重定向到标准输入参考答案:C答案解析:Linux 中有三个别系文件描述符: 0:标准输入; 1:标准输出; 2:标准缺点输出。
12.下面的脚本运行往后,$array数组所包含的值是什么? $array= array('1','1'); foreach($array as $k=>$v){ $v= 2; } A、array (‘2’ , ‘2’) B、array (‘1’ , ‘1’) C、array (2 , 2) D、array (Null , Null)参考答案:B答案解析:foreach循环并不能改变数组元素的值,如果要改变数组元素的值,须要利用引用类型