php面试常问的问题及回答
2023-01-13 本站作者 【 字体:大 中 小 】
1、PHP的意思,它能干些什么?
PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页,英文的全称(Professional Home Pages)
(1)WEB开发、实现订单、网络通信、在线支付、一切互联网可以实现的工作。
(2)脚本的开发,Shell脚本、windows的计划任务等
(3)软件的开发,PHP-GTK等第三方的软件,使用php语法配合其他的语言开发软件
2、谈谈对mvc的认识?
由模型(Model),视图(View),控制器(Controller)完成的应用程序
由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;参考《PHP100视频教程》43、44、75、76、77讲
3、问题:在页面中引用css有几种方式?
回答:在页面中使用css有3中方式:
引用外部css文件
内部定义style样式
内联样式
4、问题:php支持多继承吗?
回答:不可以。php类只能继承一个父类,并用关键字“extended”标识。
5、问题:请问php中echo和print有什么区别?
这两个看起来很相似,因为它们都是将一些值打印在屏幕上。但是echo和print的本质区别在于:echo用来输出字符串,显示多个值的时候可以用逗号隔开。只支持基本类型,print不仅可以打印字符串值,而且可以打印函数的返回值。
6、问题:请问get和post方法有什么区别?
回答:我们再网页上填写的表单信息都可以通过这两个方法将数据传递到服务器上,当我们使用get方法是,所有的信息都会出现在url地址中,并且使用get方法最多只能传递1024个字符,所以如果在传输量小或者安全性不那么重要的情况下可以使用get方法。说到post方法,最多可以传输2mb字节的数据,而且可以根据需要调节。
7、问题:php中获取图像尺寸大小的方法是什么?
回答:getimagesize()获取图片的尺寸
imagesx()获取图片的宽度
imagesy()获取图片的高度
8、从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是连续的这个问题有个关键点,扑克牌,1-13不能再多了。这就很简单了。用PHP来做,定义一个数组分别存着1到13,拿出一个,置空一个,最后看下这五个置空的是不是连续的。这种情况不考虑抽出的顺序。
9、两条相交的单向链表,如何求它们的第一个公共节点思想:
如果两个链表相交,则从相交点开始,后面的节点都相同,即最后一个节点肯定相同;从头到尾遍历两个链表,并记录链表长度,当二者的尾节点不同,则二者肯定不相交;尾节点相同,如果A长为LA,B为LB,如果LA>LB,则A前LA-LB个先跳过如果两个单向链表有公共的结点,也就是说两个链表从某一结点开始,它们的m_pNext都指向同一个结点。但由于是单向链表的结点,每个结点只有一个m_pNext,因此从第一个公共结点开始,之后它们所有结点都是重合的,不可能再出现分叉。所以,两个有公共结点而部分重合的链表,拓扑形状看起来像一个Y,而不可能像X。
10、最长公共子序列问题LCS,如有[1,2,5,11,32,15,77]和[99,32,15,5,1,77]两个数组,找到它们共同都拥有的数,写出时间复杂度最优的代码,不能用array_intersect(这里有坑,需要去研究一下动态规划)。
11、linux的内存分配和多线程原理
12、MYSQL中主键与唯一索引的区别主键:绝对不能有空值。唯一索引:可以有空值
13、http与https的主要区别关键是S上。简而言之,https建立连接后要先把SSL的证书发下去,有了公钥和私钥,就可以解密了。
14、问题:php中的pear是什么?
回答:pear也就是为php扩展与应用库(php extension and application repository),它是一个php扩展及应用的一个代码仓库。
15、问题:如何用php和mysql上传视频?
回答:我们可以在数据库中存放视频的地址,而不需要将真正的视频数据存在数据库中。可以将视频数据存放在服务器的指定文件夹下,上传的默认大小是2mb,但是我们也可以在php.ini文件中修改max_file size选项来改变。
16、问题:php中的错误类型有哪些?
回答:php中遇到的错误类型大致有3类。
提示:这都是一些非常正常的信息,而非重大的错误,有些甚至不会展示给用户。比如访问不存在的变量。
警告:这是有点严重的错误,将会把警告信息展示给用户,但不会影响代码的输出,比如包含一些不存在的文件。
错误:这是真正的严重错误,比如访问不存在的php类。
17、问题:如何在php中定义常量?
回答:php中使用define()来定义常量。
define(“newconstant”,30);
问题:如何不使用submit按钮来提交表单?
18、问题:如何不使用submit按钮来提交表单?
如果不想用submit按钮来提交表单,可以用超链接来提交:
<a href=”javascript:document.myform.submit();”>Submit Me</a>
20、GD库是做什么用的?
GD库提供了一系列用来处理图片的功能,使用GD库可以处理图片,或者生成图
片。在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据
生成报表。现在常用的GD2功能更强大,可以实现对gif、png图片的处理
21、数据类型(int char varchar datetime text)的意思;请问varchar和char有什么别?
int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串,char的场地固定为创建表设置的长度,varchar为可变长度的字符
22、表单中get与post提交方法的区别?
get是发送请求HTTP协议通过url参数传递进行接收
而post是实体数据,可以通过表单提交大量信息.
23、session与cookie的区别?
session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的一般
用于后台和安全性比较高的地方。cookie:是存储在客户端,对于Cookie来说是存储在用户浏览器下面的,一般用户
登陆,负载压力比较大的地方。可以减轻服务器的负载。
24、echo(),print(),print_r()的区别?
echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值print()只能打印出简单类型变量的值(如int,string)
print_r()可以打印出复杂类型变量的值(如数组,对象)
Echo输出一个或者多个字符串
25、什么是模板技术、能够使HTML和PHP分离开使用的模板?
模板技术就是使PHP和HTML、CSS、JS分离,实现更加合理和代码的部署Smarty,XTemplate,Template Lite,Easy Template…
26、对于大流量的网站,您采用什么样的方法来解决访问量问题?
确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,
程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量
27、include和require的区别是什么?为避免多次包含同一文件可用什么代替它们?
包含文件不存在或者语法错误的时候require是致命的,include不是require需要放在头部预先载入,而include放在文件的任何位置随时载入
还有一对扩展函数:require_once()include_once()
28、mysql_fetch_row()和mysql_fetch_array之间有什么区别?
mysql_fetch_row是从结果集取出1行数组,作为枚举
mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得.
29、不用数据库,验证登陆的用户名和密码
提交数据时把数据存储在本地cookie下,或都把它存储在某一文件内(用php生成)
如何自制蛋挞
肉火烧面怎么和面
奶茶几分糖好喝
过桥米线是哪里的?
面霜和乳液的区别
怎么摘隐形眼镜
粉饼和散粉的区别
冷烫和热烫的区别
高品质香水如何鉴别?用三步就可以解决
如何去除黑眼圈