php常见面试题

本文主要探讨了PHP中常见的面试问题,包括include与require的区别、Cookie与session的使用场景、魔术方法的作用、预处理操作符的效率、Echo、Print、Print_r的功能差异、MVC设计模式的理解、HTTP方法GET与POST的比较、SQL引擎的选择及其优化策略、面向对象编程的基本概念,以及PHP中的变量引用、错误处理、JSON操作等核心概念。这些问题涵盖了PHP的基础和高级知识,对于PHP开发者来说是面试中常常会遇到的题目。
摘要由CSDN通过智能技术生成

1. Include 与 require的区别,require和require_once的效率哪个高?

  PHP在遇到include时就解释一次,如果页面中出现10次include,php就解释10次,而php遇到require时只解释一次,即使页面出现多次require也只解释一次,因此require的执行表率比include高。

Php使用require包含文件时将被包含的文件当成当前文件的一个组成部分,如果被包含的文件中有语法错误或者被包含的文件不存在,则php脚本将不再执行,并提示错误。

Php使用include包含文件时相当于指定了这个文件的路径,当被包含的文件有语法错误或者被包含的文件不存在时给出警告,不影响本身脚本的运行。

Include在包含文件时可以判断文件是否包含,而require则不管任何情况都包含进来。

Require的效率比require_once的效率更高,因为require_once在包含文件时要进行判断文件是否已经被包含。

 

2. Cookie和session的区别?

(1)cookie数据存放在客户的浏览器上,session数据放在服务器上。

(2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。

(3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE。

(4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。session大小没有限制。

3. 写几个魔术方法并说明作用?

__call()当调用不存在的方法时会自动调用的方法

__autoload()在实例化一个尚未被定义的类是会自动调用次方法来加载类文件

__set()当给未定义的变量赋值时会自动调用的方法

__get()当获取未定义变量的值时会自动调用的方法

__construct()构造方法,实例化类时自动调用的方法

__destroy()销毁对象时自动调用的方法

__unset()当对一个未定义变量调用unset()时自动调用的方法

__isset()当对一个未定义变量调用isset()方法时自动调用的方法

__clone()克隆一个对象

__tostring()当输出一个对象时自动调用的方法

4 . ++i和i++哪一个效率高,为什么?

++i效率比i++的效率更高,因为++i少了一个返回i的过程。

++i:先加一,再赋值

i++:先赋值再加一

int i=9
如果是++i<10。这里i值已经是10,所以比较失败
如果是i++<10,这里i值还是9,比较成立
++i相当于直接进行了i+=1的运算,而i++相当于依次循环后运算i+=1,具有滞后的特点

5 . Echo()、print()、print_r()的区别?

Echo() 是PHP语法,可以输出多个值,不能输出数组。

Print() 是php的语言结构,可以输出单个简单类型的变量值。

Print_r() 是php函数,可以打印出复杂类型变量的值,如数组,对象。

var_dump是php用来 打印 变量的 函数 用作 调试
dump ThinkPHP 框架 自定义的 用作框架变量 调试用的输出 功能可以说和 var_dump一样的

6.谈谈你对Mvc的认识

MVC是一种设计模式,强制使输入、处理、输出分开,MVC的三个核心部分:M模型,V视图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值