面试可能会被问到的问题

  1. 1. 抽象 vs 接口
  2. 2. 文件上传注意事项
  3. 3. cookie作用
  4. 4. php 的数据类型
  5. 5. 页面乱码处理
  6. 6. ajax缺点
  7. 7. 字符串转整型
  8. 8. 处理正则表达式
  9. 9. 字符串的常用函数
  10. 10. 进程 线程
  • 留意一下
  • 抽象 vs 接口

    抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。
    抽象类是通过关键字 abstract 来声明的。
    抽象类与普通类相似,都包含成员变量和成员方法,两者的区别在于,抽象类中至少要包含一个抽象方法,
    抽象方法没有方法体,该方法天生就是要被子类重写的。
    抽象方法的格式为:abstract function abstractMethod();

    因为php中只支持单继承,如果想实现多重继承,就要使用接口。也就是说子类可以实现多个接口。
    接口是通过interface关键字来声明的,接口中的成员常量和方法都是public的,方法可以不写关键字public,
    接口中的方法也是没有方法体。接口中的方法也天生就是要被子类实现的。

    抽象类和接口实现的功能十分相似,最大的不同是接口能实现多继承。在应用中选择抽象类还是接口要看具体实现。
    子类继承抽象类使用extends,子类实现接口使用implements。

    文件上传注意事项

    1. 首现要在php.ini中开启文件上传;
    2. 在php.ini中有一个允许上传的最大值,默认是2MB。必要的时候可以更改;
    3. 上传表单一定要记住在form标签中写上enctype=”multipart/form-data”;

    cookie作用

    1. 记录用户访问的部分信息
    2. 在页面间传递变量

    php 的数据类型

    php支持8种原始数据类型。
    包括:
    四种标量类型(布尔型boolean,整型interger,浮点型float/double , 字符串string)
    两种复合类型(数组array , 对象object)
    两种特殊类型(资源resource,NULL)

    页面乱码处理

    1. 查看当前页面meta标签的charset
    2. header函数指定的charset
    3. 数据库的字符集

    ajax缺点

    不利于seo推广优化,因为搜索引擎无法直接访问到ajax请求的内容

    字符串转整型

    1. 强制类型转换
    2. settype(字符串变量,整型)
    3. intval(字符串变量)

    处理正则表达式

    preg_quote -- 转义正则表达式字符 正则表达式的特殊字符包括:. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -
    preg_replace -- 执行正则表达式的搜索和替换
    preg_replace_callback -- 用回调函数执行正则表达式的搜索和替换
    preg_split -- 用正则表达式分割字符串
    

    字符串的常用函数

    trim();--去除空格
    strlen();--字符串长度
    substr();--截取字符串
    str_replace();--替换字符串函数
    substr_replace() -- 对指定字符串中的部分字符串进行替换
    strstr();--检索字符串函数
    explode();--分割字符串函数
    strcasecmp();--比较字符串函数
    

    进程 线程

    进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同
    进程的颗粒度太大,每次都要有上下文环境的调入,保存,调出。
    线程是共享了进程的上下文环境,的更为细小的CPU时间段

    留意一下

    • count 可以递归计算数组
    • echo可以一次输出多个值,中间用逗号隔开。而print一次只能输出一个值
    • include 有返回值,require 没有
    • 当对一个不可见的对象属性使用empty() 时,__isset()方法如果存在的话,它将会被调用