php面试相关

FALSE的七种情况

0, 0.0, ' ', '0', false, array(), NULL

超全局数组

$GLOBALS, $_GET, $_POST, $_SERVER, $_REQUEST, $_SESSION, $_COOKIE, $_FILES, $_ENV

$_SERVER['SERVER_ADDR']  服务器Ip地址

$_SERVER['SERVER_NAME']  服务器名称

$_SERVER['REQUEST_TIME']  启动时间

$_SERVER['QUERY_STRING']  url?后边内容

$_SERVER['HTTP_REFERER']  上级请求页面

$_SERVER['REMOTE_ADDR']  客户端IP地址

$_SERVER['PATH_INFO']    URL路径部分

NULL三种情况

1. 直接赋值   2. 未定义的变量  3. unset销毁的变量

null + null = 1

常量的定义方式

const更快是语言结构, define是函数

const可以定义类的常量, define不可以

const  const 常量名=值; 没有$符

define  define('ABC', 123)

预定义常量

__FILE__  返回文件路径名和文件名称

__LINE__  所在行号

__DIR__    所在目录

__FUNCTION__  所在的函数体

__CLASS__    所在的类名

__METHOD__    类名和方法名

__NAMESPACE__    namespace名称    

@PHP错误控制符

 

   结果 $a =1, $b = 1

include和require

如果加载文件不存在include发出一条警告程序继续运行

require发出一个致命错误, 停止运行

目录的遍历

魔术方法

__construct()  实例化一个类之前先执行构造方法

__destruct()  在销毁一个类之前执行执行析构方法

__call()    调用一个对象中不存在或被权限控制中的方法,__call 方法将会被自动调用

__get()    读取不可访问属性的值时,__get() 会被调用

__set()    用来设置私有属性, 给一个未定义的属性赋值时,此方法会被触发

__isset()   当在类外部使用isset()函数来测定对象里面的私有成员是否被设定时,就会自动调用类里面的__isset()

__unset()    当删除一个不存在或者权限不够的属性的时候会自动触发

__sleep()   当在类外部使用serialize()时会调用这里的__sleep()方法

__clone()   当对象克隆的时候自动加载此方法

 

MySQL相关

分析SQL查询慢的方法

第一种、记录慢查询日志 (需要开启),可以使用pt-query-digest工具进行分析

第二种、使用show profile, 需要开启(set profiling), 执行所有的语句会存在临时表中, 然后进行分析

    show profiles  显示所有的sql语句耗时

    show profile for query 临时表ID (详细查看耗时)

第三种、 explain select * from A  ( 分析单条sql语句的使用情况 ) 或者用 desc select * from A 结果是一样的

 

分区表

创建表时用partition by子句定义每个分区存放的数据

限制:一个表最多只能有1024个分区 , 分区字段中如果有主键和唯一索引列,那么主键列和唯一列都必须包含进去, 分区表中无法使用外键, 所有分区都必须使用相同的存储引擎

posted @ 2020-05-25 17:37  不一样的开始  阅读(130)  评论(0)    收藏  举报