当前位置: 首页 > 后端技术 > PHP

PHP基础知识梳理

时间:2023-03-29 17:23:44 PHP

双引号单引号区别双引号解释变量,单引号不解释变量在双引号中插入单引号,如果单引号中有变量,变量解释双引号后面必须跟一个变量名非数字、字母、下划线以外的特殊字符,或者用{}把变量括起来,否则变量名后面的部分会被当成一个整体,造成语法错误。单引号字符尽量使用单引号,单引号比双引号效率更高。引号要高于GET和POST提交方式的区别。GET生成一个TCP数据包;POST产生两个TCP数据包;对于GET方式的请求,浏览器会将http头和数据一起发送,服务器响应200(返回数据)对于POST,浏览器先发送头,服务器响应100继续,浏览器发送数据,服务器响应200ok(返回数据)。GET在浏览器回退时是无害的,POST会重新提交请求。GET请求会被浏览器主动缓存,而POST不会,除非手动设置GET请求参数,否则会完整保留在浏览器历史记录中,而POST中的参数不会保留。GET请求只能进行url编码,POST支持多种编码方式。GET不如POST安全,因为参数直接暴露在URL上,所以不能用来传输敏感信息。如何获取客户端的真实ip$_SERVER['REMOTE_ADDR']或者getenv('REMOTE_ADDR')可以使用ip2long()转换成数字。include和require的区别在于无条件包含。也就是说,如果在一个流程中加入了require,不管条件是否为真,都会先执行。require,当文件不存在或无法打开时,会提示错误,并终止程序执行。include有返回值,require没有(可能因为require比include快),如果被包含的文件不存在,那么会提示错误,但程序会继续执行。注意:当include文件不存在或者语法错误时require是致命的,include不是AJAX的优势。ajax的优势是什么?通过JQuery框架实现,实现局部刷新,减轻服务器压力,提升用户体验。在程序的开发中,如何提高程序的运行效率?优化SQL语句,尽量不要在查询语句中使用select*,用哪个字段查哪个Fields;使用较少的子查询并改用表连接;少用模糊查询;在数据表中创建索引;为程序中经常使用的数据生成缓存;SESSION和COOKIE的区别服务器安全性:Session安全性高于cookie参考链接:https://www.zhihu.com/questio...isset和empty的区别isset()函数一般用来检测是否有一个变量是否设置,如果变量不存在返回FALSE如果变量存在且值为NULL,也返回FALSE如果变量存在且值不为NULL,返回TRUEempty()函数检查是否存在变量为空如果变量不存在,返回TRUE如果变量存在且值为"",0,"0",NULL,,FALSE,array(),var$var;和没有任何属性的对象,如果变量存在则返回TURE如果值不是"",0,"0",NULL,,FALSE,array(),var$var;和一个没有任何属性的对象,它将返回FALSE。数据库三种范式的第一种范式:1NF是属性Constraints的原子,要求属性是原子的,不能分解;第二范式:2NF是对记录的唯一约束,要求记录具有唯一标识,即实体的唯一性;ThirdNormalForm:3NF是对域冗余的约束Constraints,即任何域都不能从其他域派生出来。要求字段没有冗余的主键、外键和索引。外键是另一个表的主键,外键可以有重复项,可以是空索引--该字段没有重复值,但可以有空值斜体文本功能:主键--使用保证数据完整性Key——用来与其他表建立关系的索引——提高查询排序的速度数:主键——主键只能有一个外键——一张表可以有多个外键索引——一张表可以有多个唯一索引。堆和栈的区别。栈是编译时分配的内存空间,所以你的代码中一定要明确定义栈的大小;堆是程序运行过程中动态分配的内存空间。程序的执行决定了要分配的堆内存的大小。