20171203题目列表

Linux

• shell统计日志中单接口访问量

mysql

• Mysql是不支持嵌套事务的,开启了一个事务的情况下,再开启一个事务,会隐式的提交上一个事务。

• mysql事务隔离级别

redis

• redis的key过期机制

• redis的持久化

php

• 写一个算法模拟抽取扑克牌的过程。例如,如果有N张牌,每次抽取一张(等概率的)直到抽完所有的牌,返回抽取的过程。

• 最佳答案:1. 初始随机范围是数组的长度2. 每次都随机出的要抽出的牌然后和最后的那张牌进行交换 (30%)3. 然后随机范围-1 (40%)4. 继续抽取,直到抽取随机范围-1是0为止。 (100%)这是O(n)的算法复杂度。

• foreach, for , while 循环访问数组,哪个效率最高?为什么?(foreach,hash下标)

• php 读取文件的方式有几种? 都有什么区别?(file,fopen,file_get_contents,其余请补充)

1.fseek,在文件指针中定位,可以不是顺序读取,fseek($fh, 1024);//返回前1024字节

2.file,将整个文件读入到一个数组中返回 file()

3.file_get_contents(),以字符串形式获取文件的内容

4.fread—读取文件(可安全用于二进制文件),从文件指针handle读取最多length个字节,返回所读取的字符串, 或者在失败时返回FALSE。

5.fgets,从文件指针中读取一行,从handle指向的文件中读取一行并返回长度最多为length- 1 字节的字符串

6.fgetss,文件指针中读取一行并过滤掉 HTML 标记,从handle指向的文件中大读取length- 1 个字节的字符,并过滤了所有的 HTML 和 PHP 代码。

• PHP empty、isset、is_null的区别(empty会误伤0和空串)

1.$a='',isset($a)返回true,is_null返回false

特殊的NULL值表示一个变量没有值。NULL类型唯一可能的值就是NULL

在下列情况下一个变量被认为是NULL:

1.被赋值为NULL 2.未被赋值 3.被unset

• a=null;a=null;b=NULL a==a==b 和 a===a===b的结果是什么;

• a=″,a=″,a==null 和 is_null($a)结果是什么?

• 一个多维数组,请写一个递归函数输出所有内容并返回数组内元素的总个数(static 变量);

• 删除数组中的元素的方法有哪些?它们的优缺点是什么?(uset,array_splice(自动下标,会重排,uset不会))

1.array_splice—去掉数组中的某一部分并用其它值取代,键名不被保留

2.unset,去掉一个变量,需要知道你想取到的变量是哪个,可以用array_search搜索元素,数组下标不会变化,

3.去除多个元素,取差集,array_diff,array_diff_key,去除多个值相同的元素,先找到同名的键,array_keys($arr,$search_value)

关于去除数组元素有一个非常棒的帖子:https://stackoverflow.com/questions/369602/php-delete-an-element-from-an-array

• PHP中的函数区分大小写吗?(不区分)

• if(){} else if(){} ;if(){} elseif(){} ;if(){} Else (){}哪个对?

php的条件语句有以下几种:

1、if 语句- 如果指定条件为真,则执行代码

2、if...else 语句- 如果条件为 true,则执行代码;如果条件为 false,则执行另一段代码

3、if...elseif....else 语句- 选择若干段代码块之一来执行

4、switch 语句- 语句多个代码块之一来执行

• php 有几个魔术方法,都有什么用?(__constraction,__set,__get,__call,__callStatic, __construct …..)

16个魔术方法(https://segmentfault.com/a/1190000007250604),8个魔术常量

• empty和unset有什么区别

1.empty() 判断一个变量是否被认为是空的,当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。isset—检测变量是否已设置并且非NULL。

2、当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值

• foo()和@foo()有什么区别

1.foo()会报错误,@foo()隐藏错误。

2.PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

注意: @ 运算符只对表达式有效。对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。

例如,可以把它放在变量,函数和include()调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。

• php中object和array的相互转化

1.答案:https://blog.longqiuhong.com/archives/123

• 用php写一个singleton

1.实例设置private,构造函数private,外部访问public的方法要设置成静态方法,内存只有一处存放

2.私有化__clone()/__wakeup()方法

• 类的静态属性和静态方法,需要通过什么样的方式去访问?(对象可以访问静态方法,不能访问静态成员?)

参考:https://laravel-china.org/articles/3652/static-static-attribute-and-static-method-call-in-php

(1)、静态属性不需要实例化即可调用。因为静态属性存放的位置是在类里,调用方法为"类名::属性名";

(2)、静态方法不需要实例化即可调用。同上

(3)、静态方法不能调用非静态属性。因为非静态属性需要实例化后,存放在对象里;

(4)、静态方法可以调用非静态方法,使用 self 关键词。php里,一个方法被self:: 后,它就自动转变为静态方法;php日志中会有一条提示,php不赞成这么使用,第一次看到这种类型,看的比较多的是php Fatal、php warning这些,PHP Deprecated:  Non-static method Human::say() should not be called statically in /home/map/lihuiqin/script/tmp/staticFunc.php on line 18

(5)、调用类的静态函数时不会自动调用类的构造函数。

• this ,self和parent的区别是什么?

this是指向对象实例的一个指针,在实例化的时候来确定指向;self是对类本身的一个引用,一般用来指向类中的静态变量;parent是对父类的引用,一般使用parent来调用父类的构造函数。

• 定义常量的方式有几种?都有什么区别? (define和const的区别是什么?)

(1).const用于类成员变量的定义,一经定义,不可修改。define不可用于类成员变量的定义,可用于全局常量。

(2).const可在类中使用,define不能。

(3).const不能在条件语句中定义常量。

(4).const采用一个普通的常量名称,define可以采用表达式作为名称。

(5).const只能接受静态的标量,而define可以采用任何表达式。

(6).const定义的常量时大小写敏感的,而define可通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。

• PDO是什么?有什么作用?

PHP DATA OBJECT,数据库访问抽象层,统一各种数据库的访问接口。

PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力;与ADODB和MDB2相比,PDO更高效。目前而言,实现“数据库抽象层”任重而道远,使用PDO这样的“数据库访问抽象层”是一个不错的选择。

PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO)

1.mysql扩展是设计开发允许php应用与MySQL数据库交互的早期扩展,针对MySQL4.1.3或者更早版本设计的,但并不支持后期MySQL服务端提供的一些特性。由于太古老,又不安全,所以已被后来的mysqli完全取代;

2.mysqli扩展,我们有时称之为MySQL增强扩展,可以用于使用 MySQL4.1.3或更新版本中新的高级特性。其特点为:面向对象接口 、prepared语句支持、多语句执行支持、事务支持 、增强的调试能力、嵌入式服务支持 、预处理方式完全解决了sql注入的问题。不过其也有缺点,就是只支持mysql数据库。如果你要是不操作其他的数据库,这无疑是最好的选择。

3.PDO是PHP Data Objects的缩写,是PHP应用中的一个数据库抽象层规范。PDO提供了一个统一的API接口可以使得你的PHP应用不去关心具体要连接的数据库服务器系统类型,也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器,比如从Oracle 到MySQL,仅仅需要修改很少的PHP代码。其功能类似于JDBC、ODBC、DBI之类接口。同样,其也解决了sql注入问题,有很好的安全性。不过他也有缺点,某些多语句执行查询不支持。

• php 与 nginx 和apache之间关系是什么?

nginx和apache都是web服务器,

apache是通过mod_php来解析php,nginx是通过php-fpm(fast-cgi)来解析php

1.CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。CGI就是规定要传哪些数据、以什么样的格式传递给后方处理这个请求的协议。

2.php-cgi只是解释PHP脚本的程序而已,php-cgi只是个CGI程序,他自己本身只能解析请求,返回结果,不会进程管理

3.fastcgi是一个协议,Fastcgi是用来提高CGI程序性能的,php-fpm实现了这个协议

4.PHP-FPM,是一个实现了Fastcgi的程序,被PHP官方收了。php-fpm的管理对象是php-cgi,修改了php.ini配置文件后,php-fpm能够平滑重启,php-fpm对此的处理机制是新的worker用新的配置,已经存在的worker处理完手上的活就可以歇着了,通过这种机制来平滑过度。

• 如何实现php的数组?

hashtable

• include和require有什么异同点,还有哪些函数可以加载外表类库com_load, dotnet_load

1.include()用时加载,require是一开始就加载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,531评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,157评论 11 349
  • 一. Java基础部分.................................................
    wy_sure阅读 3,780评论 0 11
  • 浓烟下 炮火怒吼着 战争把瞬间的烟火变成永恒 麦田上 他割着麦子 汗水把衣襟染成岁月的黄 偶然抬起头看看远方, 看...
    关馨仁阅读 167评论 0 1
  • 【摘要】 “如果只能去一个国家旅行,就去土耳其吧。” ‌【正文】 图文 / Kendra 上帝给了这个国度太多优待...