什么是面向对象? 主要特征是什么?
面向对象是一种程序设计模式, 它利于提高程序的重用性,使程序结构更加清晰。主要特征,封装,继承,多态。
HTTP中状态码及其含义?
1xx信息性状态码,接受的请求正在处理
2xx成功状态码,请求正常处理完毕。
3xx重定向,需要附加操作以完成请求。
4xx客户端错误,客户端请求出错,服务端无法请求处理
5xx服务器错误,服务器处理请求出错
200 OK 表示从客户端发给服务器的请求被正常处理并返回。
204 No Content 表示客户端发给服务器的请求得到成功处理,但在返回的响应报文中不含实体的主体部分。(没有资源可返回)
206 Patial Content 表示客户端进行了范围性请求,并且服务器成功执行了这部分get请求,,响应报文中包含由Content-Range指定范围的试实体内容
301 Moved Permanently 永久性重定向,请求的资源被分配了新的url 之后应使用更改的url
302 Found 临时性重定向,表示请求的资源被分配了新的url,希望本次访问新的url,301与302的区别是,前者永久移动url,后者临时移动,可能以后还会移动。
303 See Other 表示请求的资源被分配了新的url应使用get方法定向获取请求的资源。302与303的区别是后者规定了get方式获取资源。
304 Not Modified 表示客户端发送附带条件(是指采用GET方法的请求报文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)请求时,服务端允许访问资源,但请求为满足条件时返回该状态码
307 Temporary Redirect 临时重定向,与303一样,但是307会遵循浏览器标准,不会从post变为get
400 Bad Request 请求报文中存在错误语法,
401 Unauthorized 未经许可,需要经过http认证
403 Forbidden 表示服务器拒绝该次访问(权限出现问题)
404 Not Found 表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求,但不想给拒绝原因时使用
500 Inter Server Error 表示服务器在执行请求时发生了错误,也可能是web应用存在某些bug或者某些临时错误
503 Sever Unavailable 表示服务器暂时处于超负载或者进行停机维护。
Linux下建立压缩以及解压缩?
四种方法,Tar.gz,Bz2,Gzip(不保留原文件),Zip(-r 对目录)
打包:tar czf file.tar.gz file.txt
解压:tar xzf file.rar.gz
打包:bzip2 -k 文件
解压 bunzip2 -k 文件
打包:gzip file.txt
解压:gunzip file.txt.gz
打包:zip file.zip file.txt
解压:unzip file.zip
写出数据类型char,varchar,datatime,int,text的含义?char和varchar的区别?
char定长字符,varchar变长字符,datatime日期时间类型,int整数,text文本类型。char和varchar的区别就是,varchar时可变长度,内容多大就占多大内存,有效节省空间,在数据改变时,服务器要进行额外操作,效率比char低。
MyISAM和innodb的区别?
(1)InnoDB支持事物,MyISAM不支持,如在增删改查中哪一个出现了错误,还可以回滚还原,MyISAM则不可。
(2)InnoDB支持外键,MyISAM不支持。
(3)MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性能较高的应用,
(4)MyISAM是默认引擎,InnoDB是需要进行指定
(5)InnoDB中不保存表的行数,如select count(*) from table时,InnoDB需要进行扫描整个表来进行计算多少行,MyISAM只需要简单的读出保存好的行数即可,注意的是,当count(*)语句包含where时MyISAM也需要扫描全表。
(6)InnoDB不支持FULLTEXT类型的索引,
(7)对于自增长的字段,InnoDB必须包含只含有该字段的索引,但是MyISAM表中可以和其他字段一起建立联合索引
(8)清空整个表时,MyISAM会重建表,而InnoDB则会一行一行的删除,效率非常慢。
(9)InnoDb支持行级锁,某些情况下还是支持锁整表的例如update table set a = 1 where user like ‘%lee%’.
InnoDB优点:支持外键,支持事物并发量较大,适合大量update
缺点:查询速度较慢,不适合大量的select
NyISAM优点:查询速度相对较快,适合大量select,可以全文索引
缺点:缺乏事物,缺乏外键,并发量小,不适合大量update
isset与empty和is_null的区别?
isset()检测一个变量是否被设置且非NULL返回true,仅当null和未定义返回false
empty()检测一个变量是否为空,"",0,0.0,"0",NULL,false,array(),$var(声明了但未赋值的变量)均返回true,但是'0.0'和'00'返回false
is_null()检测变量是否为NULL是则返回true被赋值为NULL,尚未被赋值,被unset()都被认定为NULL。
php数组相关函数有哪些?
array()-------------创建数组
range()------------创建并返回一个包含指定元素范围的数组
array_combine()--------通过合并两个数组来建立一个新的数组
compact()-------------建立一个数组
array_chunk()----------将一个数组分割成多个
array_merge()---------将两个数组合并成一个
array_slice()-----------将数组中根据条件取出一段值
array_diff()------------返回两个数组的差级数组
array_intersect()-------计算两个数组的交集
array_search()---------在数组中搜索给定的值
array_splice()----------移除数组的一部分且替代他
array_key_exists()------判断数组中是否存在指定的key
shuffle()---------------把数组的元素按照随机顺序排列
array_flip()-------------交换数组的键和值
array_reveres()--------将数组中元素顺序反转,创建新数组并返回
array_unique()---------移除数组中重复的值