PHP面试题大全(值得收藏)
调试模式的优势在于: 开启日志记录,任何错误信息和调试信息都会详细记录,便于调试; 关闭模板缓存,模板修改可以即时生效; 记录SQL日志,方便分析SQL; 关闭字段缓存,数据表字段修改不受缓存影响; 严格检查文件大小写(即使是Windows平台),帮助你提前发现Linux部署问题; 可以方便用于开发过程的不同阶段,包括开发、测试和演示等任何需要的情况,不同的应用模式可以配置独立的项目配置文件。 10、TP中支持哪些配置模式?优先级? 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置 以上是配置文件的加载顺序,因为后面的配置会覆盖之前的同名配置(在没有生效的前提下),所以优先顺序从右到左。 11、TP中的URL模式有哪几种?默认是哪种? ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义,包括普通模式、PATHINFO、REWRITE和兼容模式。 默认模式为:PATHINFO模式,设置URL_MODEL 为1 12、TP中系统变量有哪些?如何获取系统变量? (1)系统变量:SERVER、 _SERVER、 S ERVER、_ENV、 $_POST、 $_GET、 REQUEST、 _REQUEST、 R EQUEST、_SESSION和 $_COOKIE变量 (2)获取系统变量: 13、ThinkPHP框架中D函数与M函数的区别是什么? M方法实例化模型无需用户为每个数据表定义模型类,D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会自动调用M方法去实例化Model基类。同时对于已实例化过的模型,不会重复去实例化(单例模式)。 五、smarty模板引擎 1、编译和缓存区别? smarty的编译过程就是把模板拿过来,把里面的标签替换成相应php代码,这就是smarty的编译, 其实就是php和html混合的过程 smarty的缓存需要手动开启,smarty的缓存就是把编译好的文件执行后,同时生成一份静态的html页面,再次访问的时候,你访问的就是是html文件了,所以就效率来说,要高一些。 2、什么是smarty? Smarty的优点是什么? Smarty是一个使用PHP写出来的PHP模板引擎,目的是要使用PHP程序同美工分离,使的程序员改变程序的逻辑内容时不会影响到美工的页面设计,美工重新修改页面时不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。(也易于程序的多样式开发) Smarty优点 (1)速度快:相对其他模板引擎。 (2) 编译型:采用smarty编写的程序在运行时要编译成一个非模板技术的PHP文件 (3)缓存技术:它可以将用户最终看到的HTML文件缓存成一个静态的HTML页 (4)插件技术:smarty可以自定义插件。 不适合使用smarty的地方 (1)需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新 (2)小项目。小项目因为项目简单而美工与程序员兼于一人的项目 3、在模板中使用{$smarty}保留变量 在模板中访问php中的变量 5、变量调解器 2018PHP经典面试题大全汇总(更新)-PHP面试题 6、php查询mysql数据库时,查询中文结果时出现的乱码。怎么解决? (1)文件meta(设置浏览器解析的时候) (2)连接数据库时编码设定 (3)PHP文件中使用header函数确定编码 7、缓存机制 如果开启了缓存,smarty同时生成一份静态的html页面,如果在设定的时间没有过期,再次访问的时候,你访问的就是是html文件了,减少了读取数据库,所以就效率来说,要高一些。 8、smarty的赋值和载入模板 9、marty模板技术的用途是什么? 为了php与html分开,美工和程序员各司其职,互不干扰。 10、smarty配置主要有哪几项? (1)引入smarty.class.php; (2) 实例化smarty对象; (3)重新修改默认的模板路径; (4)重新修改默认的编译后文件的路径; (5)重新修改默认的配置文件的路径; (6)重新修改默认的cache的路径。 (7) 可以设置是否开启cache。 (8)可以设置左侧和右侧定界符。 11、smarty在使用过程中需要注意哪些细节? Smarty是基于MVC概念的一种模板引擎,它将一个页面程序分成了两部分来实现:即视图层和控制层, 也就是说smarty技术将用户UI与php代码分离开。 这样程序员和美工各司其职,互不干扰。 12、smarty运用过程中要注意以下几个问题: (1)正确配置smarty。主要要实例化smarty对象,配置smarty模板文件的路径; (2)php页面中使用assign赋值 和display显示页面; (3)smarty模板文件中不允许出现php代码段,所有的注释,变量,函数都要包含在定界符内。 六、二次开发系统(DEDE、ecshop) 1、对二次开发的理解 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能,一般来说都不会改变原有系统的内核。 2、MVC Model(模型)数据处理。 View(视图) 模板显示。 Controller(控制器) 控制流程。 MVC的概念是什么?各层主要做什么工作? MVC(即模型-视图-控制器)是一种软件设计模式或者说编程思想。 M指Model模型层,V是View视图层(显示层或者用户界面),C是Controller控制器层。 使用mvc的目的是实现M和V分离,从而使得一个程序可以轻松使用不同的用户界面。 在网站开发中, 模型层一般负责对数据库表信息进行增删改查, 视图层负责显示页面内容, 控制器层在M和V之间起到调节作用,控制器层决定调用哪个model类的哪个方法, 执行完毕后由控制器层决定将结果assign到哪个view层。 3、二次开发程序安装后访问时候出现一些警告以及错误 根据错误,来修改服务器配置参数以及百度 4、功能,模板的更换,功能的添加修改 其实也就是面向对象的应用 用,以及模板的更换类似smarty的使用 5、用过哪些二次开发的东西? Dedecms phpcms ecshop,基本这些的东西如果基础好了 学习起来都是没问题的。 6、像php做一次开发好,还是二次开发好? 一般中小企业都用cms系统二次开发,都是为了效率。当然如果想一次开发也行,会用框架而且时间充足的话就可以了,大企业都是团队来开发的,杜绝版权问题。 7、二次开发过程中很多类与类之间进行之间的方法访问,是通过什么方式传递的? 不是类继承而是对象组合,把实例化好的对象通过global传递进去 8、dedecms如果更换目录,后台某项就进不去了如何解决? 后台核心设置中修改成现在的 项目目录名称 9、dedecms中自定义模型的理解? (编辑:广州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |