答:
echo 用于输出变量或字符串,他是一个PHP语句,并非一个函数,所以他并不存在返回值。
print 同echo一样 print也不是一个函数 因此无需对其使用括号,但print稍慢于echo,需要注意的是使用print() 加上括号时会返回1。
printf()函数用于输出格式化字符串,sprintf()函数返回一个格式化后的字符串,而不是输出。
print_r()函数用于打印关于变量的易于理解的信息。
var_dump()函数用于打印变量的内容,类型,长度等。
答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息。
答:session:存储用户访问的全局唯一变量,存储在服务器上的PHP指定的目录中的(session_dir)的位置进行的存放。
cookie:用来存储连续访问一个页面时所使用,是存储在客户端,对于Cookie来说是存储在WIn的Temp目录中。
两者都可通过时间来设置时间长短。
第一种:通过url传值,把session_id附加到url上。(缺点:整个站点中不能有纯静态的页面,因为纯静态页面session_id将无法继续传到下一页面)
第二种:通过隐藏表单,把session_id放到表单的隐藏文本框中同表单一块提交。(缺点:不适用标签之中直接跳转的非表单的情况)
答:HTTP效率更高,HTTPS安全性更高。
HTTP:超文本传输协议,信息明文传输,是互联网上应用最为广泛的网络协议。HTTP使用的端口号是80,HTTP协议是无状态的(所以采用session或cookie去标识用户状态)。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS使用的端口443,HTTPS协议需要到ca申请证书,一般免费的证书很少,需要交费。
答:事务是指用户定义的 一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务具有4个特征:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这4个特性简称为ACID特性。
原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到了一个一致性状态。
隔离性:一个事务的执行不能被其他事务干扰。
持续性:持续性也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久的。
答:也是最左优先,比如为name,age,city三个列建立多列索引,相当于创建了name和name,age组合索引和name,age,city的组合索引。如果where条件选择的是age and city 或 age 、city这些字段来查,则不会使用到索引,会遍历全表查找。一般情况下,where子句中使用最频繁的一列放在最左边。
答:Mysql中有很多引擎,InnoDB和MyISAM是最常使用的两种,其中MyISAM是MySql默认存储引擎。
事务:InnoDB支持事务功能,MyISAM不支持并且MyISAM的执行速度更快且性能更好。
数据操作语言:MyISAM引擎适合执行大量select操作,InnoDB引擎适合执行大量的inset或update操作。
锁机制:MyISAM锁的粒度是表级即表级锁,InnoDB支持行级锁定即行级锁。
物理结构:MyISAM表存放在三个文件中:frm文件存放表格定义,数据文件是MYD(MyData),索引文件是MYI(MYIndex)。
InnoDB表由共享空间、日志文件组(rado文件)、表结构定义文件组成。若将innodb_file_pre_table设置为on,则系统将为每个表单独生成一个table_name.ibd的文件,在此文件中存储与表相关的数据、索引、表的内部数据字典信息等。
索引:MyISAM支持全文类型索引,InnoDB不支持全文索引。
查询表的行数:比如执行select count(*) from table ,MyISAM引擎,表的行数存储在表中,没有使用where条件 可以直接读取出保存好的行数,所以效率较高。
InnoDB中不保存表的具体行数,需要扫描一遍整个表来计算多少行,所以效率较低。
总结:MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要大量使用select查询,那么MyISAM是更好的选择。
InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务。如果应用中需要执行大量的insert或update操作,则应该使用InnoDB。
答:include()在执行文件时每次都要进行读取和评估,require()文件只处理一次(实际上文件内容替换了require语句)
require()和include()语句是语言结构,不是真正的函数,可以像PHP的其他语言结构一样。他们最根本的区别在于错误处理的方式不一样。
require()包含文件失败,停止执行,给出错误(致命的)。
include()常用于动态包含,通常是自动加载的文件,即使加载出错,程序也不会中端,而是继续执行,并显示一个警告错误。
include_once()和require_onec()语句也是在脚本执行期间包括并运行指定文件,与include()require()唯一的区别是如果文件中的代码已经被包括了,则不会再次包括。