史上最难PHPer笔试题,40分就能月薪过万!附答案

请批判性的学习,欢迎大牛指正错误

1、有关PHP字符串的说法,不对的是:
A、如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为
ISO-8859-1。
B、PHP的字符串在内部是字节组成的数组,用花括号访问或修改字符串对多字节字符集很不安全。
C、substr()、strpos()、strlen()、htmlentities()
处理字符串时依据的编码方式是相同的。
D、一个布尔值 Boolean 的 true 被转换成 string 的 “ 1 ”,false
被转换成空字符串。
 
2、下列Linux下Shell命令的说法,不正确的是:
A、crontab作业:“ 0 5,6,7 * *
*/home/www/test.sh ”意思是每天的第5,6,7小时执行脚本。
B、“ find ./ -type f -name "*.php"
-print0 | xargs -0 wc -l ” 能统计当前目录下PHP代码的总行数。
C、Shell下执行命令“ :(){:|:& };:
” ,系统会没有响应,只能重启了。
D、“ [email protected] ”将函数中所有参数当成单个字符串,“ $*
”把函数的所有参数当一个数组。
 
3、以下正则表达式的说法,错误的是:
A、POSIX兼容正则没有修正符,PERL兼容正则中可能用到修正符。
B、{n,},n是一个非负整数,意思是至少匹配n次;
?等价于匹配长度{0,1} 。
C、PERL风格正则默认的非贪婪模式尽可能少的匹配所搜索的字符串。
D、在执行效率上 preg_match
比ereg的速度要略快一些。
 
4、关于PHP数组的说法,不对的是:
A、处理PHP数组,foreach的效率要比for高很多,是因为foreach走的是链表的遍历。
B、PHP数组底层采用的是循环链表,正向、反向遍历数组都很方便。
C、无论是
array(1, 2, 3) 还是array(1 => 2, 2=>
4)等,本质上都是hash_table。
D、PHP数组插入和删除操作的时间复杂度都是O(1)。
 
5、有关PHP引用的说法,错误的是:
A、unset一个引用,只是断开了变量名和变量内容之间的绑定,这并不意味着变量内容被销毁了。
B、PHP引用本质就是指针,在函数调用范围内可以绑定到别的变量上面。
C、在一个对象的方法中,$this永远是调用它的对象的引用。
D、可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。
 
6、以下对PHP命名空间的说法,不对的是:
A、访问任意全局类、函数或常量,都可以使用完全限定名称,例如
\strlen() 或 \Exception 或 \INI_ALL。
B、关键字 namespace
可用来显式访问当前命名空间或子命名空间中的元素,它等价于类中的 this
操作符。
C、任意合法的PHP代码都可以包含在命名空间中,但只有三种类型的代码受命名空间的影响,它们是:类,函数和常量。
D、常量__NAMESPACE__的值是当前命名空间名称的字符串。在全局的,不包括在任何命名空间中的代码,它就是一个空字符串。
 
7、下列PHP相关的说法,错误的是:
A、PHP官方推荐使用Apache的prefork模式,此模式下建议选用Non
Thread Safe版本。
B、FastCGI下选择Non Thread Safe版本;ISAPI下选择Thread
Safe版本。
C、用PHP彩蛋能大致获取PHP的版本,PHP中一共隐藏了4个彩蛋。
D、官方不建议将Non Thread
Safe用于生产环境,所以我们选择Thread Safe
版本的PHP来使用。
 
8、关于JavaScript的说法,不正确的是:
A、语句“ alert(1==true); ” 和语句
“ alert(2==true); ” 的结果都是true。
B、JS的数组其实就是对象,用for
in语句可以遍历数组的所有属性。
C、JS中的对象通过引用来传递,它们永远不会被复制。
D、JS中的函数就是对象,所以它们可以像任何其他的值一样被使用。
 
9、有关PHP面向对象的说法,不对的是:
A、要实现一个接口,使用
implements 操作符,类中必须实现接口中定义的所有方法,否则会报一个致命错误。
B、类名可以是任何非 PHP
保留字的合法标签,汉字也可以作为PHP的类名。
C、如果PHP的子类中定义了构造函数,则创建子类的对象时,会隐式的调用其父类的构造函数。
D、序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。
 
10、以下PHP高级特性的说法,正确的是:
 
A、我们可以定义一个类去实现预定义接口Iterator,然后就能像访问数组一样访问这个类创建的对象。
B、spl_autoload_register()
提供了一种更加灵活的方式来实现类的自动加载,不再建议使用 __autoload() 函数。
C、PHP在对象中调用一个不可访问方法时,__invoke()
方法会被自动调用。
D、匿名函数也叫闭包函数,常用作回调函数参数的值,但是不能作为变量的值来使用。
 
11、下列关于HTTP协议的说法,错误的是:
A、如果本地开启了Cookie,那么每打开一个网址,HTTP请求就会把相应的Cookie传给Web服务器。
B、HTTP响应的状态码为301意思是暂时地把内容转移到一个新的URL,但是老的URL还没有废除。
C、HTTP是一个基于请求与响应模式的、无状态的、应用层的协议,绝大多数的Web开发都是基于HTTP协议。
D、绝大多数的Web开发离不开Cookie,如果禁用Cookie导致Session失效,可以通过URL来传递sessionID。
 
12、以下对PHP文件处理的说法,正确的是:
A、file_get_contents()
函数能用来抓取网页数据,但是没办法设置超时时间 。(虽然不能直接设置超时时间,但可以通过其他方法设置超时)
B、file()
函数既能读取文本文件也能读取二进制文件,但是读取二进制文件有可能出现安全问题。(从PHP 4.3
开始本函数可以安全用于二进制文件。早期的版本则不行)
C、如果表单中没有选择上传的文件,则 PHP 变量 的值将为NULL

D、fsockopen()和fputs() 结合起来可以发送邮件,也可以用来抓取网页内容,下载ftp文件等。(上传ftp文件)
 
13、关于Mysql索引的说法,不对的是:
A、500万数据的用户表user在性别字段sex上建立了索引,语句
“select * from user where sex=1 ” 并不会提速多少。
B、一般情况下不鼓励使用like操作,类似的“ like
"abc%" ”
可以使用到索引。
C、唯一索引允许空值,而主键索引不允许为空值,除此之外它们是相同的。
D、对于需要写入数据的操作,比如DELETE、UPDATE以及INSERT操作,索引会降低它们的速度。
 
14、下列有关数据结构的说法,不正确的是:
A、直接选择、二分法、冒泡、基数等排序方法都是稳定的排序方法。
B、5000个无序的元素,希望用最快的速度挑选出其中前50个最大的元素,最好选用堆排序。
C、栈和队列都只允许在端点处插入和删除元素。

D、深度优先遍历是一个递归算法,在遍历的过程中,先访问的点被压入栈底。
 
15、以下关于NOSQL的说法,不对的是:
A、MongoDB支持CAP定理中的AP,MySQL支持CAP中的CA,全部都支持不可能存在。
B、Redis支持字符串、哈希、列表、集合、有序集合等数据结构,目前Redis不支持事务。
C、Memcache既支持TCP协议,也支持UDP协议,我们可以把PHP的Session存放到Memcache中。
D、MongoDB不用先创建Collection的结构就可以直接插入数据,目前MongoDB不支持事务。
 
16、关于设计模式的说法,错误的是:
A、观察者模式中,观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。
B、MVC模型的基本工作原理是基于观察者模式,实现是基于命令模式。
C、设计模式的核心原则是:"开-闭"原则:对扩展开放,对修改关闭。
D、创立型模式的根本意图是要把对象的创建和使用分离的责任进行分离,从而降低系统的耦合度。
 
17、下列关于常见开源PHP系统的说法,不对的是:
A、Laravel要求PHP版本>=
5.3
,它拥有更富有表现力的语法、高质量的文档、丰富的扩展包,被称为“巨匠级PHP开发框架”。
B、Discuz采用单一入口的设计模式,这样的模式在权限控制,URL重写等方面都很有优势。
C、HDWiki的插件共有三种类型,钩子类型、前台应用和后台应用类型,在后台可以在线安装HDWiki插件。
D、WordPress的博客程序定位,简单的数据库层等都注定了他不能适应大数据。
 
18、以下关于“表驱动法”的描述,错误的是:
A、表驱动法可以作为复杂继承结构的替代方案,难点在于一个经过深思熟虑的查询表。
B、表驱动法是一种编程模式——从数据库表里面查找信息而不使用逻辑语句。
C、凡是能通过逻辑来选择的事物,都可以通过查表来选择。
D、表驱动法查找无规则分布的数据采用阶梯访问的方法最佳。
 
19、下列关于全文检索技术的说法,不对的是:
A、Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL做全文搜索,它可以提供比数据库本身更专业的搜索功能。
B、Solr是新一代的全文检索组件,它比Lucene的搜索效率高很多,还能支持HTTP的访问方式,PHP调用Solr也很方便。
C、MySQL中把一个字段建立FULLTEXT索引,就可以实现全文检索,目前MyISAM和InnoDB的table都支持FULLTEXT索引。
D、Lucene附带的二元分词分析器CJKAnalyzer切词速度很快,能满足一般的全文检索需要。
 
20、以下关于大型网站的说法,正确的是:
 
A、大型网站程序异常后,程序员可以依据服务器日志信息定位错误,然后在服务器上用vim修正错误即可。
B、大型网站开发很多细节和小网站有巨大差异,如“浏览次数”,小网站用数据库记录,大型网站常采用NoSQL来存储。
C、大型网站选择开发语言很重要,PHP只适合开发中小型网站,并不适合开发大型网站。
D、虚拟机技术不能用在大型网站上,是因为虚拟机性能较差,而大型网站的访问压力太大,采用后服务器可能会宕机。

答案:

1、C
(编码方式不同,substr()操作中文的时候会乱码)
2、D
([email protected]是数组,$*是字符串,$#是参数个数)
3、C
(默认的是贪婪模式)
4、B
(PHP数组使用的是双向链表,不是循环链表)
5、B
(PHP引用不是指针,是给一个变量起个别名,传递的不是空间地址)
6、B
(应该是等价于self)
7、C
(没人知道一共有多少个彩蛋,不然就不叫彩蛋了)
8、D
(JS的函数不是对象)
9、B
(汉字不能作为类名,参考PHP命名规范)
10、D
11、B
(301是永久转向)
12、C
(如果表单中没有选择上传的文件,则
PHP 变量 $_FILES[‘userfile‘][‘size‘] 的值将为 0,$_FILES[‘userfile‘][‘tmp_name‘] 将为
none)
13、C
(唯一索引当然不允许空值,不然就不叫唯一了)
14、A
(不稳定:简单选择排序,希尔排序,快速排序,堆排序,冒泡
稳定:直接插入排序,归并排序,基数排序)
15、B
(Redis支持事务,MongoDB不支持事务)
16、A
(观察者不能改变被观察者的状态)
17、C
(插件按照是否需要在前台显示,可以分为两类:前台展示类插件和非前台展示类插件)
18、D
(阶梯结构的基本想法是,表中的记录对于不同的数据范围(连续点)有效,而不是对不同的数据点(离散点)有效)
19、C
(InnoDB不支持FULLTEXT索引)
20、D

史上最难PHPer笔试题,40分就能月薪过万!附答案,布布扣,bubuko.com

时间: 2024-11-08 20:25:52

史上最难PHPer笔试题,40分就能月薪过万!附答案的相关文章

史上最难PHPer笔试题,40分就能月薪过万!

点击这里进入在线测试后获取评测分数和答案 1.有关PHP字符串的说法,不对的是: substr().strpos().strlen().htmlentities() 处理字符串时依据的编码方式是相同的. PHP的字符串在内部是字节组成的数组,用花括号访问或修改字符串对多字节字符集很不安全. 如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1. 一个布尔值 Boolean 的 true 被转换成 string 的 " 1 ",false 被转换成

史上最全python面试题详解(一)(附带详细答案(持续更新))

1.简述解释型和编译型编程语言? 概念: 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序.然后,可直接运行这个程序. 解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束! 区别: 编译型语言,执行速度快.效率高:依赖编译器.跨平台性差些.如C.C++.Delphi.Pascal,Fortran. 解释型语言,执行速度慢.效率低:依赖解释器.跨平台性好.如Java.Basic. 2.Python解释器种类以及特点 CPython c语言开发的 使用最广的解释器 IPython

HarestGame史上最难游戏源码 v2.0

绚丽的背景音乐,触摸屏点击操作,适合现在绝大多数游戏玩家的习惯,可跳转至页面设置音效,并存档, 酷炫的IOS动画引擎,显示大量的动画效果,可自行进行修改源码. 游戏过程:用户点击进入游戏后,——>显示绚丽的游戏启动界面——>显示游戏界面——>用户可设置游戏(是否显示背景音乐.按钮点击游戏.游戏动画音效).点击Play按钮后,——>显示游戏关卡,用户可看到游戏的各种关卡,(目前只完成了第一关,您可以自行完成其他关卡)整个游戏界面,完全模拟iPhone官方的史上最难游戏的 界面及动画效

凯撒密码 史上最难的问题(呃,这是编程题目的名字,不是真的最难.....)

史上最难的问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22160   Accepted: 12165 Description 儒略?凯撒生活在充满危险和阴谋的年代,而其中最艰难的状况莫过于求得生存.于是他发明了最早的密码系统之一,用于军队的消息传递. 假设你是凯撒军团中的一名军官,需要把凯撒发送的消息破译出来,并提供给你的将军.消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息

poj 1298 史上最难的问题 -- 凯撒密码

史上最难的问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24958   Accepted: 13565 Description 儒略?凯撒生活在充满危险和阴谋的年代,而其中最艰难的状况莫过于求得生存.于是他发明了最早的密码系统之一,用于军队的消息传递. 假设你是凯撒军团中的一名军官,需要把凯撒发送的消息破译出来,并提供给你的将军.消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息

金九银十,史上最强 Java 面试题整理。

以下会重新整理所有 Java 系列面试题答案.及各大互联网公司的面试经验,会从以下几个方面汇总,本文会长期更新. Java 面试篇 史上最全 Java 面试题,带全部答案 史上最全 69 道 Spring 面试题和答案 史上最全 Java 多线程面试题及答案 史上最全 50 道 Redis 面试题及答案 史上最全 55 道 MySQL 面试题总结 i++ 是线程安全的吗? 高级 Java 面试通关知识点整理 出场率比较高的一道多线程安全面试题 30 个 Java 集合面试问题及答案 Java 中

史上最全Java面试题整理(附参考答案)

下列面试题都是在网上收集的,本人抱着学习的态度找了下参考答案,有不足的地方还请指正,更多精彩内容可以关注我的微信公众号:Java团长 1.面向对象的特征有哪些方面? 抽象:将同类对象的共同特征提取出来构造类. 继承:基于基类创建新类. 封装:将数据隐藏起来,对数据的访问只能通过特定接口. 多态性:不同子类型对象对相同消息作出不同响应. 2.访问修饰符public,private,protected,以及不写(默认)时的区别? ? protected 当前类,同包,异包子类. 3.String 是

史上最全Java面试题(带全部答案)

今天要谈的主题是关于求职,求职是在每个技术人员的生涯中都要经历多次.对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦.在跳槽季来临之前,特地做这个系列的文章,一方面帮助自己巩固下基础,另一方面也希望帮助想要换工作的朋友. 相关概念 面向对象的三个特征 封装,继承,多态,这个应该是人人皆知,有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要

史上最全Redis面试题及答案

1.什么是Redis? 2.Redis相比memcached有哪些优势? 3.Redis支持哪几种数据类型? 4.Redis主要消耗什么物理资源? 5.Redis的全称是什么? 6.Redis有哪几种数据淘汰策略? 7.Redis官方为什么不提供Windows版本? 8.一个字符串类型的值能存储最大容量是多少? 9.为什么Redis需要把所有数据放到内存中? 10.Redis集群方案应该怎么做?都有哪些方案? 11.Redis集群方案什么情况下会导致整个集群不可用? 12.MySQL里有2000