1 说出常用的10个数组方法

我觉得数组比较最能体现PHP基础语法的一个数据结构了,下面给大家列一下常用的10个关于操作数组的函数

in_array(判断数组中是否有某个元素)

implode(将数组按照一定规律分解)

json_encode(将数组转化成json)

sort(排序,有很多排序的函数这里就说一个)

array_push(将一个活多个单元压入数组的末尾)

array_merge(合并数组)

array_key_exists(检查键名是否存在于数组中)

array_unique(去除数组中重复的值,只能对一位数组起作用)

array_shift(移除数组中第一个单元)

php有很多关于数组的函数,但常用的就是这几个了,可能我说的还不是很合适,但没什么大问题。需要注意的是,不要为了应付面试而盲目的死记硬背php的数组函数,你像array_pop这样的函数,你倒是知道这样的函数,笔试的时候也打出来了,但当面试官问你,你平时怎么用这个方法,你不就噎菜了吗?!所以要写平时常用的

2 说出平时常用的操作字符串的方法,并解决具体问题

同上,字符串操作也是php的基础用法,下面尽可能全的罗列一下平时常用的字符串操作

substr(截取字符串)

strlen(获取字符串长度)

strpos(查找字符串首次出现的位置)

str_replace(字符串替换)

explode(将字符串按照规律转化成数组)

strtoupper(将所有字母变成大写)

strtolower

ucfirst(将字符串的首字母变成大写)

ucwords(将字符串中每个单词的首字母变成大写)

strrev(反转字符串,其实不是很常用)

substr_replace(替换字符串的子串,注意与str_replace的区别)

strip_tags(去除html和php标记,可以选择保留想要的标签)

trim(去除空格)

explode(分割成数组)

这些是比较常用的了,肯定还有一些我没有列举出来,毕竟php的字符串函数比较多又或者其他的函数我用的不多。另外,记住这个函数并不是目的,目的是会用,笔试的时候可不是简单的问你这些函数的名字,那都是要做具体的例子的。现在时间比较紧,有时间一定会举出10个例子来分析的

3 恒等于 貌似不应该把这个当做一个单独的知识点来说,但这确实是笔试题中经常考到的

反正我平时没有主动用过这个东西一次。“==”相比于"==="不同的是,前者之比较值的大小,后者会比较数据类型。举例说明

if(1 == '1'){echo "it's right";}

if(1 === '1'){}

很明显,前者是正确的。因为这两个变量的类型不同

4 三元运算符

它的一般定义谁都会有,$a = 1 ? 'one' :0;但是有一次笔试我见了一个比较变态的题目,多个三元运算符和其他运算符联合在一起,让我不知道先执行哪一个,举例说明

echo (true?'true':false?'t':'f');这个问题曾一段让我很郁闷,到底先执行哪一个呢?首先,肯定是从左到右的,echo ((true ? 'true' : 'false') ? 't' : 'f');这样就够清晰了吧,哈哈

记住这一原则就可

5 require和include的异同

这应该是让我们比较恶心的问题了,但这却也是经常考的问题

我们都知道的是require在执行出错时不会继续执行,include会继续执行,还有就是require一般放在文件的头部包含一个初始化文件之类的东西,而include一般是在语句中用到了那些文件包含过来

6 session和cookie

这也是面试中常问到的问题,最简单的回答常是session保存在服务端,大量的session会增大服务器的压力,cookie因为保存在客户端所以没有这些问题,但cookie因为这个特点所以相对来说不安全,这是我初学php的时候知道的

后来我知道了,session与cookie联系在一起是通过session_id联系起来的,而seesion_id是保存在cookie中的,这也就是为什么我清了cookie,session会失效的原因。当然我们也可以不将session_id保存在cookie里,一般大型网站不会将用户信息保存在session里,正如上面所说的因为会占资源,这时会将session保存在DB中,当然这也和集群有关,因为你如果使用了集群的话,会有多台服务器,你seesion保存在这台服务器上而处理的操作却通过另一台服务器的话就找不到session了。另外,session的过期时间,很多人都以为在php的配置文件中配置了就可以,其实这不是最好的方式,因为这个过期时间还取决于另一个参数,也就是过了这个你设置的时间session可能不会马上被清掉。所以我们将session保存在DB中。

7 面对对象

这几乎是每次面试都会问到的问题,而面试官又有几个能明白的呢?这里不详细介绍这个问题

8 对mvc的理解

这道是个不难理解的概念,现在只要是框架都用这种模式来处理问题了,mvc和smarty还不一样。smarty没有将m和c分开,也就是业务逻辑和控制器还是混在一起的,比较典型的例子就是ecshop。控制器controller负责调度数据,接受请求,具体处理数据的操作让模板model来完成,然后再通过控制器将值传给试图view

这是目前我考虑到的php常考的问题,后续会不断补充的

MySQL

对于我们这种没有大数据处理经验的苦逼来说,只能业余时间多看些资料来弥补不足了,但这毕竟不如有真实工作经验来的有说服力

1 首先是扎实的sql语句,这是毋庸置疑的,下面讲的都是关于优化了,如果这个再不会的话就不应该了,这里我只介绍一个group by语句,我觉得这是所有语句中最难的一个

group by是根据字段分组,举个例子,订单表中,每个商品都有可能被买了多次,这里如何查询每个商品被购买的次数呢?

select count(*),goods_name  from table group by goods_id 这可以将商品名称和购买数量取出来

2 sql语句的优化,说完了基础的sql语句,下面说一下sql优化。这里要注意的地方很多

一 尽量避免全局扫描,几乎没有将一个表中所有数据都使用的请求,对where order by使用的字段添加索引

二 应尽量避免在where字句中使用!= <>操作符,否则存储引擎会放弃使用索引而进行全局搜索

三 避免在where条件中使用or,这也会使存储引擎进行全局搜索

四 使用模糊搜索的时候,like '%string%',不会使用索引。like 'string%'会使用索引

五 慎用 in,可能也会导致全表检索。如果是连续的条件可以考虑使用between

六 在where条件中使用参数、表达式操作和对字段进行函数操作也会导致全表检索。select id from t where num/2=100应修改为select id from t where num=100*2

select id from t where substring(name,1,3)='abc' 应改成select id from t where name like 'abc%'

七 使用复合索引时,条件语句应该跟索引的顺序相同,否则不会使用索引导致全表扫描

八 很多时候使用exists代替in是个好的选择

九 并不是所有的查询都会使用索引,如果建立索引的字段有太多的重复值,即使建立了索引也不会用到。比如性别字段

十 索引的数量。索引不是越多越好,使用索引可以加快检索速度,但会降低insert和update的效率(哎呀,我写不下去了,网上多的是)

十一 尽量使用数字型字段,如果一个存储字段可以设置成数字类型就不要设置为字符串类型,具体为什么呢?首先,可以减少存储空间。其次可以提高检索速度

十二 能用char的尽量不用varchar,因为char是固定长度的,所以检索速度快。但是相对来说占空大,所以应该对固定长度的字段用char,如身份证号

关于sql语句的优化差不多就是这样,等以后有实例经验了在补充

3 mysqli的概念及使用

总有那么一群或牛逼或装逼的技术大佬,用发骚的声音问你,你平时操作数据库是用mysql提供的原生的方法还是怎样,你妹的我平时就知道这些你还想让我怎样

这里说一下mysqli相比于mysql的好处

一 mysql是非持续性连接,每次一个请求都会打开一个进程。而mysqli则因为啥永久连接,会使用同一个进程

二 mysqli可以同时处理多条sql,这是比较新鲜的,但这有什么用呢?

三 sorry,目前实在找不出其他的好处了

4 大数据量优化实例

大公司都会有这么一项笔试题,搞一个实例,多少多少条数据,用户访问量很高,问怎么设计表才能最优化。这都是各自的公司针对他们的具体情况出的问题,针对性比较强,网上也不好搜索

这里关于mysql的面试知识我就先说这么多,其实我说的只是皮毛,以后会不断增加的

 

 

Linux

这里我遇见的问题到是不多,毕竟我不是高级程序员而且大公司也都有专门的运维人员,而且面试好像也不是太重视你会不会这东西

1 了解常用的命令

我现在掌握了90个命令,其实已经足够了。真正平时常用的命令也就那么十几个,就像你在windows上,除了点击 浏览 新建 删除 编辑等操作一样,常用的也就那么几个

2 能写shell

这是我目前还没有掌握的,没资格说这些,不过我马上就要开始学shell了,哈哈

 

 

jQuery

或者应该说js,但貌似现在用jquery的比较多,毕竟方便嘛,作为一名web开发人员,需要掌握这些歌东西真是一件快乐的事。jquery能做的事我大体上来说是两种,第一我们常见的特效,不过这偏前台。第二,跟后台进行数据交互(比如异步刷新页面用的就是ajax)

下面说两个例子,是我面试时遇到的

1 ajax如何解决跨域问题

php面试必知必会常见问题的更多相关文章

  1. Java面试必知必会(扩展)——Java基础

    float f=3.4;是否正确? 不正确 3.4是双精度,将双精度赋值给浮点型属于向下转型,会造成精度损失: 因此需要强制类型转换: 方式一:float f=(float)3.4 方式二:float ...

  2. Java面试必知必会:基础

    面试考察的知识点多而杂,要完全掌握需要花费大量的时间和精力.但是面试中经常被问到的知识点却没有多少,你完全可以用 20% 的时间去掌握 80% 常问的知识点. 一.基础 包括: 杂七杂八 面向对象 数 ...

  3. 你必知必会的SQL面试题

    写在前面的话 本文参考原博<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 1>和<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 2>进行练习 ...

  4. 关于TCP/IP,必知必会的十个经典问题[转]

    关于TCP/IP,必知必会的十个问题 原创 2018-01-25 Ruheng 技术特工队   本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养. 一 ...

  5. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    本文原作者:“竹千代”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.前言 无论是即时通讯应用还是传统的信息系统,Http协议都是我们最常打交 ...

  6. 《SQL必知必会》笔记

    SQL必知必会(第4版) 作者:[美]Ben Forta 本书介绍了sql在不同数据库工具(Oracle.SQLite.SQL server.MySQL.MariaDB.PostgreSQL...)是 ...

  7. TCP/IP 必知必会的十个问题

    本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养. 一.TCP/IP模型 TCP/IP协议模型(Transmission Control Protoc ...

  8. TCP/IP,必知必会的

    文章目录 前言 TCP/IP模型 数据链路层 网络层 ping Traceroute TCP/UDP DNS TCP连接的建立与终止 TCP流量控制 TCP拥塞控制 0 前言 本文整理了一些TCP/I ...

  9. 第4节:Java基础 - 必知必会(中)

    第4节:Java基础 - 必知必会(中) 本小节是Java基础篇章的第二小节,主要讲述抽象类与接口的区别,注解以及反射等知识点. 一.抽象类和接口有什么区别 抽象类和接口的主要区别可以总结如下: 抽象 ...

  10. 第3节:Java基础 - 必知必会(上)

    第3节:Java基础 - 必知必会(上) 本篇是基础篇的第一小节,我们从最基础的java知识点开始学习.本节涉及的知识点包括面向对象的三大特征:封装,继承和多态,并且对常见且容易混淆的重要概念覆盖和重 ...

随机推荐

  1. PLL各种问题,关于倍频

    原来一直想不通频率为什么可以增加. 一个4M的时钟怎么就可以升高到40M, 现在明白了,4M的时钟并没有被升高, 而是PLL里的VCO这个东西, 这个东西可以产生一定范围的内的任意频率信号, 频率由输 ...

  2. 关于web服务安全的一些思考

    一.问题: 在开发web项目是时,安全问题有以下几种问题: (1)用户可以自己伪造一个URL请求来进行访问吗? (2)用户不在服务器登录,可以自己封装出用户名.密码进行访问吗? (3)url的参数可以 ...

  3. BZOJ4049][CERC2014]Mountainous landscape-[线段树+凸包+二分]

    Description 现在在平面上给你一条折线P1P2P3...Pn. x坐标是严格单调递增的.对于每一段折线PiPi+1,请你找一个最小的j,使得j>i且走在PiPi+1的人能看到折线PjP ...

  4. centos7安装cacti

    参考博客地址:https://blog.csdn.net/kenn_lee/article/details/80565385 Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络 ...

  5. 六、Django之Template

    一.Template由来 1.任何前端页面的改动都和后端有关: 2.前端HTML和后端python分开能让网站更加清晰: 3.前后端分离的趋势下,专业的事交给专业的人做. 二.Django中的temp ...

  6. Python运维三十六式:用Python写一个简单的监控系统

    市面上有很多开源的监控系统:Cacti.Nagios.Zabbix.感觉都不符合我的需求,为什么不自己做一个呢? 用Python两个小时徒手撸了一个简易的监控系统,给大家分享一下,希望能对大家有所启发 ...

  7. javaweb(三十三)——使用JDBC对数据库进行CRUD

    一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...

  8. javaweb(七)——HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  9. Javascript库,前端框架(UI框架),模板引擎

    JavaScript库:JQuery,undoscore,Zepto 纯Javascript语言封装, 前端框架(UI框架):Bootstrap,Foundation,Semantic UI,Pure ...

  10. @Resource和@Autowired的异同

    相同点: 两者都能做到注入一个Bean. 两者都可应用在Field和Method上面. 两者均为Runtime级别的Retention. 不同点: 使用的场景有差异 @Resource可应用在类(TY ...