一二三四五原则:(即一:消息系列;二:成功系列;三:重定向系列;四:请求错误系列;五:服务器端错误系列。)
302:临时转移成功,请求的内容已移动到新位置
403:禁止
500:服务器内部错误
401:代表未获得授权。
4、请写出数据类型(int char text)的含义; 它和char有什么区别?
Int 整数 char 定长字符 变长字符 日期时间类型 Text 文本类型与 char 的区别在于 char 是定长字符类型。 分配多少空间,就占用多少空间。 它是一种可变长度字符类型。 内容有多少就占用多少空间,可以有效节省空间。 由于类型是可变的,当数据长度发生变化时,服务器要执行额外的操作,因此效率比char类型低。
5. 和 之间的基本区别是什么? 索引结构是如何实现的?
A、该类型不支持事务和表锁,容易出现碎片。 需要经常优化,读写速度快。 适合查询频繁的应用;
B、该类型支持事务、行锁、崩溃恢复能力,读写速度较慢,适合插入、更新操作较多的应用。 占用大量空间,且不支持全文索引。
创建索引:alert表添加索引索引名(`字段名`)
6.isset()和empty()的区别
sset判断一个变量是否存在,可以传入多个变量,其中一个变量不存在则返回false; empty 判断变量是否为空,为 false。 只能传递一个变量,如果为空则返回true。
/?_wv=1027&k=
7. 请解释一下PHP中按值传递和按引用传递的区别。 何时按值传递,何时按引用传递?
按值传递:函数范围内对值的任何更改在函数外部都会被忽略
通过引用传递:对函数范围内的值的任何更改也将反映函数外部的那些修改
优点和缺点: 当按值传递时,PHP 必须复制该值。 特别是对于大型字符串和对象,这可能是一项成本高昂的操作。 通过引用传递不需要复制值,这有利于提高性能。
8. PHP中这个函数的作用是什么?
设置 PHP 的错误报告级别并返回当前级别。
9. 谈谈你对缓存技术的理解?
缓存技术是将动态内容缓存到文件中,在一定时间内访问动态页面可以直接调用缓存的文件,而无需重新访问数据库。
10、现在编程中经常采用MVC三层结构。 MVC指的是哪三层,它的优点是什么?
MVC的三层分别是指:业务模型、视图、控制器。 控制器层调用模型处理数据,然后将数据映射到视图层进行显示。 优点是:①可以实现代码复用,避免代码冗余; ②M和V的实现代码分离,使得同一个程序可以使用不同的表达式
11、AJAX有什么优点?
Ajax是一种异步传输技术,可以通过框架实现或实现部分刷新,减轻了服务器的压力,提高了用户体验。
12.在程序开发中,如何提高程序的运行效率?
A.优化SQL语句,查询语句中尽量不要使用*,用哪个字段就查哪个字段; 使用较少的子查询,可以用表连接代替; 少用模糊查询;
B、在数据表中创建索引;
C、为程序中经常使用的数据生成缓存。
13、对于流量大的网站,你们用什么方法来解决流量问题?
A.有效利用缓存,提高缓存命中率
B.使用负载均衡
C.使用cdn存储和加速静态文件
D. 减少数据库使用的想法
E. 检查统计瓶颈在哪里
F. 反向代理
14. 语句 和 之间有什么区别? 为了避免多次包含同一个文件,可以使用什么语句来替换它们?
区别:
失败时:
产生一个中断,直接产生一个错误
运行前加载
运行时加载
代替:
15. foo() 和 @foo() 有什么区别?
@代表全部忽略
16.简述PHP的垃圾回收机制。
答:PHP中的变量存储在变量容器zval中。 zval除了存储变量类型和值之外,还有 和 字段。 指示指向该变量的元素数量以及该变量是否有别名。 如果为0,则变量容器被回收。 如果 zval 减 1 后大于 0,则它会进入垃圾缓冲区。 当缓冲区达到最大值时,回收算法会循环遍历zval判断是否为垃圾并释放。
17.如何最大化PHP的安全性? 如何避免SQL注入漏洞和XSS跨站脚本漏洞?
答:基本原则:不向外界展示服务器或程序设计细节(阻止错误),不信任任何用户提交的数据(过滤用户提交)。
18. echo,,打印,差异
echo:语句结构;
print:是一个有返回值的函数
:可以打印数组和对象
:可以打印具有数据类型的对象数组
19.记下模板的特点
速度快、编译、缓存技术、插件机制、强大的表现逻辑
20. PHP如何实现页面跳转
方法一:PHP函数跳转,缺点是头部之前不能有输出。 跳转后的程序继续执行,可以使用exit来中断后续程序的执行。
(":URL");//直接跳转
(":3;url=");//三秒后跳转
方法二:使用元数据
回声””;
21. 如何将格式化字符串转换为UTF-8格式?
iconv('','UTF-8','js码(js码-IT资源下载平台)是一个IT资源下载和IT技能学习平台。');
22、如果用户输入的内容需要原样输出,那么在输入数据库之前应该使用哪个函数来处理数据?
或者
23.什么是CSRF攻击? XSS攻击? 如何预防呢?
CSRF,跨站请求伪造,攻击者冒充用户发送请求,窃取信息或破坏系统。
说一下基本原理:用户访问A网站登录并生成消息,然后访问B网站。如果A网站存在CSRF漏洞,B网站向A网站的请求(相当于用户访问了A网站)时间)将被网站A视为用户发送的请求。 请求,B网站成功伪装了你的身份,所以称为跨站脚本攻击。
CSRF预防:
A.合理规范API请求方式,GET、POST
B. 在POST请求中添加token验证,生成随机码并保存。 在表格中包含此随机代码。 提交时,服务器会验证随机码是否相同。
XSS,跨站脚本攻击。
预防:不要相信任何输入,过滤输入。
24. 安全对于程序至关重要。 请您介绍一下开发过程中需要注意哪些安全机制?
A.防止远程提交;
B.防止SQL注入,过滤特殊代码;
C、防止注册机泛滥,使用验证码。
25.了解json数据格式?
JSON() 是一种轻量级的数据交换格式。 json数据格式是固定的,可以用于多种语言的数据传输。
26.什么是交易? 及其特点?
答:事务:是一系列数据库操作,是数据库应用的基本逻辑单元。
交易特点:
A.原子性:即不可分割性。 要么执行所有事务,要么不执行任何事务。
B. 一致性或可串性。事务的执行将数据库从一种正确状态转换为另一种正确状态
C、隔离。 在正确提交事务之前,不允许将此事务对数据的任何更改提供给任何其他事务。
D、耐用性。 交易正确提交后,其结果将永久保存在数据库中。 即使事务提交后出现其他故障,事务的处理结果也会被保存。
或者这样理解:
事务是一组作为逻辑工作单元绑定在一起的 SQL 语句。 如果任何一个语句操作失败,整个操作都会失败,以后的操作会回滚到操作之前的状态,或者上面会有一个节点。 为了确保某件事要么执行要么不执行,可以使用事务。 分组语句要被视为事务,需要通过 ACID 测试,即原子性、一致性、隔离性和持久性。
27.什么是锁?
答:数据库是多个用户使用的共享资源。 当多个用户并发访问数据时,多个事务同时访问数据库中的相同数据。 如果不控制并发操作,可能会读取和存储错误的数据,破坏数据库的一致性。
锁定是实现数据库并发控制的一项非常重要的技术。 在事务对数据对象进行操作之前,它首先向系统发送请求以锁定该对象。 加锁后,事务对数据对象拥有一定的控制权。 在事务释放锁之前,其他事务无法更新数据对象。
基本锁类型:锁包括行级锁和表级锁
28. 索引的作用是什么? 它的优点和缺点是什么?
答:索引是一种特殊的查询表,数据库搜索引擎可以使用它来加速数据检索。 它与现实生活中书籍的目录非常相似。 不用查询整本书就可以找到你想要的数据。 索引可以是唯一的。 创建索引允许您指定单个列或多列。 缺点是它会减慢数据输入速度并增加数据库的大小。
29、如何通俗地理解三种范式?
第一范式:1NF是对属性的原子性约束,要求属性是原子的,不可分解;
第二范式:2NF是对记录的唯一约束,要求记录具有唯一标识符,即实体的唯一性;
第三范式:3NF是对字段冗余的约束,即任何字段都不能从其他字段推导出来。 它要求字段不冗余。
30、主键、外键、索引有什么区别?
定义:
主键——唯一标识一条记录,不能重复,不允许为空
外键——一个表的外键是另一个表的主键。 外键可以重复或具有空值。
索引——该字段没有重复值,但可以有空值
影响:
主键——用于保证数据完整性
外键 - 用于建立与其他表的关系
索引--是提高查询排序的速度
数字:
主键--只能有一个主键
外键——一个表可以有多个外键
索引——一个表可以有多个唯一索引
31. 简要描述、、修饰符的访问权限。
:私有成员,只能在类内部访问。
:受保护的成员,可在类和继承类中访问。
:公共会员,完全公开,无访问限制。
32.堆和栈有什么区别?
A、堆是程序运行过程中动态分配的内存空间。 可以根据程序的运行情况确定要分配的堆内存的大小;
B. 栈是编译时分配的内存空间,所以你的代码中必须明确定义栈的大小。
33.常用的魔法方法有哪些?例如
答:PHP规定以两个下划线(__)开头的方法被保留为魔术方法,所以建议你的函数名不要以__开头,除非是要重载现有的魔术方法。
() 在类实例化时自动调用。
()在使用类对象时自动调用。
为未定义的属性赋值时调用 __set()。
__get() 在调用未定义的属性时被调用。
() 在使用isset()或empty()函数时会被调用。
() 在使用 unset() 时会被调用。
() 使用序列化时调用。
() 使用反序列化时调用。
() 在调用不存在的方法时被调用。
() 调用不存在的静态方法被调用。
() 在将对象转换为字符串时被调用。 比如回声。
() 当尝试将对象作为方法调用时调用。
() 在使用 () 函数时调用。 接受数组参数。
() 使用clone复制对象时调用。
34. $this 和 self 这三个关键字分别代表什么? 在什么情况下使用?
$当前对象
自当前班级
当前类的父类
$this在当前类中使用,使用->调用属性和方法
当前类中也使用了self,但是需要使用::来调用
课堂上使用
35.范围运算符::如何使用? 在什么情况下使用?
调用类常量
调用静态方法
36.()方法的工作原理是什么?
答:使用这个神奇功能的基本条件是类文件的文件名必须与类的名称一致。
当程序执行实例化某个类时,如果实例化前没有引入类文件,则自动执行()函数。
该函数将根据实例化类的名称来搜索类文件的路径。 当判断class文件的路径中确实存在该class文件时,
只需执行或加载类,然后程序就继续执行。 如果该路径下不存在该文件,则会提示错误。
使用自动加载魔术函数无需编写许多或函数。
37、简述高并发网站的解决方案。
A.前端优化(CND加速、建立独立图片服务器)
B.服务端优化(页面静态化、并发处理【异步|多线程】、队列处理)
C.数据库优化(数据库缓存[|Redis]、读写分离、库表分库、分区)
D. Web服务器优化(负载均衡、反向代理)