php数组函数-array_combine()
1、什么是面向对象?主要特征是什么?
面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。
2、session与cookie的区别是什么,请从协议、产生的原因与作用说明?
A、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。
B、session存储在服务器端,cookie保存在客户端。session比较安全,cookie用某种手段可以修改,不安全。session依赖于cookie进行传递。
禁用cookie后,session不能正常使用。session的缺点:保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。session保存在服务器的文件或数据库中,默认保存在文件中,文件路径由php配置文件的session.save_path指定。session文件时公有的。
3、HTTP状态中302、403、500代码含义?
302:临时转移成功,请求的内容已转移到新位置
403:禁止访问
500:服务器内部错误
401:代表未授权
4、请写出数据类型(int char varchar datetime text)的意思;请问varchar和char有什么区别?
int:整数 char:定长字符 varchar:变长字符 datetime:日期时间 text:文本型
varchar和char区别:char是固定长度的字符类型,分配多少空间,就占用多长空间。varchar是可变长的字符类型,内容有多大就占用多大的空间。
由于varchar类型是可变的,所以在数据长度改变时,服务器要进行额外的操作,所以效率比char类型低。
5、myisam和innodb的基本区别?索引结构如何实现?
A、myisam类型不支持事务,表锁,易产生碎片,要经常优化,读写书读快,适合用于频繁查询的应用。
B、innodb类型支持事务,行锁,有崩溃回复能力,读写速度比myisam慢,适合于插入和更新操作比较多的应用,空间占用大,不支持全文索引。
创建索引:alert table tanlename add index 索引名 (`字段名`)
6、isset()和empty()区别
isset判断变量是否存在,可以传入多个变量,若其中一个变量不存在则返回假;empty判断变量是否为空为假,只可传入一个变量,如果为空位假则返回真。
7、请说明PHP中传值和传引用的区别。什么时候传值什么时候传引用?
按值传递:函数范围内对值的任何改变在函数外都会被会忽略。
按引用传递:函数范围内对值的任何改变在函数外也能反映出这些修改。
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递不需要复制值,对于性能提高很有好处。
8、在PHP中error_reporting这个函数有什么作用?
设置PHP的报错级别并返回当前级别。
9、说说你对缓存技术的了解?
缓存技术是将动态内容缓存到文件中,在一定时间内访问动态页面直接调用缓存文件,而不必重新访问数据库。
10、现在编程中经常采取MVC三层结构,请问MVC分别指哪三层,有什么优点?
MVC三层分别指:业务模型、视图、控制区。由控制器调用模型处理数据,然后将数据映射到视图层进行显示。
优点:a、可以实现代码的重用性,避免产生代码冗余;b、M和V实现代码分离,从而使同一个程序可以使用不同的表现形式。
11、ajax的优势是什么?
ajax是异步传输技术,可以通过javascript实现,也可以通过jquery框架实现,实现局部刷新,减轻了服务器的压力,也提高了用户体验。
12、在程序开发中,如何提高程序的运行效率?
A、优化sql语句,查询语句中尽量不使用select *,用哪个字段查哪个字段;少用子查询语句可用连接替代;少用模糊查询
B、数据表中创建索引
C、对程序中经常用到的数据生成缓存
13、对于大流量的网站,您采用什么样的方法来解决访问量问题?
A、有效使用缓存,增加缓存命中率
B、使用负载均衡
C、对静态文件使用cdn进行存储和加速
D、想法减少数据库的使用
E、查看出现统计的瓶颈在哪里
F、反向代理
14、语句include和require的区别是什么?为避免多次包含同一个文件,可用什么语句替代它们?
区别:
在失败的时候:
include产生一个warning,而require产生直接错误终端
require在运行前载入
include在运行时载入
代替:
require_once、include_once
15、foo()和@foo()之间有什么区别?
@代表所有warning忽略
16、简述PHP的垃圾收集机制。
php中变量存储在变量容器zval中,zval中除了存储了变量类型和值外,还有is_ref和refcount字段。refcount表示指向变量的元素个数,is_ref表示变量是否有别名。如果refcount为0时,就会回收变量容器。如果一个zval的refcount减1之后大于0,他就会进入垃圾缓存区,当缓存区达到最大值后,回收算法会循环遍历zval,判断其是否为垃圾,并进行释放处理。
17、如何实现PHP的安全最大化?怎样避免SQL注入漏洞和XSS跨站脚本攻击漏洞?
基本原则:不对外界展示服务器或程序设计细节(屏蔽错误),不相信任何用户提交的数据(过滤用户提交)。
18、echo、print_r、print、var_dump区别
echo:语句结构
print:是函数,有返回值
print_r:能打印数组、对象
var_dump:能打印对象数组,并且带数据类型
19、写出smarty模板的特点
速度快、编译型、缓存技术、插件机制、强大的表现逻辑
20、PHP如何实现页面跳转?
方法一:php函数跳转,缺点:header头之前不能有输出,跳转后的程序继续执行,可用exit中断执行后面的程序。
header("location:网址");//直接跳转
header("refresh:3;url=网址");//三秒后跳转
方法二:利用meta
echo "";
21、如何把一个gb2312格式的字符串转换成utf-8格式?
iconv("GB2312","UTF-8","字符串内容")
22、如果需要原样输出用户输入的内容,在数据入库之前,要用哪个函数处理?
htmlspecialchars或者htmlentities
23、什么是CSRF攻击?XSS攻击?如何防范?
CSRF:跨站请求伪造,攻击方伪装成用户身份发送请求从而窃取信息或者破坏系统。
讲述基本原理:用户访问A网站登录并生成了cookie,再访问B网站。如果A网站存在CSRF漏洞,此时B网站给A网站请求(此时相当于是用户访问),A网站认为是用户发的请求,从而B网站就成功伪装了你的身份,因此叫跨站脚本攻击。
CSRF防范:
A、合理规范api请求方式GET,POST
B、对POST请求加token令牌验证,生成一个随机码并存入session,表单中带上这个随机码,提交的时候服务器进行验证随机码是否相同
XSS:跨站脚本攻击
防范:不相信任何输入,过滤输入
24、安全对一套程序来说至关重要,请说说在开发中应该注意哪些安全机制?
A、防远程提交
B、防止SQL注入,对特殊代码进行过滤
C、防止注册灌水,使用验证码
25、对json数据格式的理解?
json是一种轻量级的数据交换格式,json数据格式固定,可以被多种语言用作数据的传递。
26、什么是事务?及其特性?
事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。
事务特性:
A、原子性:即不可分割性,事务要么全部执行,要么就全部不执行。
B、一致性:事务的执行使得数据库从一种状态转换成另一种状态。
C、隔离性:在事务提交之前,不允许把该事务对数据的任何改变提供给任何其他事务。
D、持久性:事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务的处理结果也会得到保存。
或者这样理解:事务就是被绑定在一起作为一个逻辑工作单元的sql语句组,如果任何一个语句操作失败,那么整个操作就被失败,以后操作就会回滚到操作之前状态,或者是放个节点。未了确保要么执行,要么不执行,就可以使用事务。
27、什么是锁?
数据库是一个多用户使用的共享资源。当多个用户并发取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。
加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据队形有一定的控制,在该事务释放锁之前,其他的事务不能对此数据队形进行更新操作。
基本锁类型:锁包括行级锁和表级锁
28、索引的作用?和它的优点缺点是什么?
索引就是一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询证书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者多个列。缺点是它减慢了数据录入的菽粟,同时也增加了数据库的尺寸大小。
29、如何通俗地理解三个范式?
第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
第二范式:2NF是对记录的唯一性约束,要求记录有唯一标识,即实体的唯一性;
第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余;
30、主键、外键和索引的区别?
定义:
主键:唯一标识一条记录,不能有重复的,不允许为空;
外键:表的外键是另一张表的主键,外键可以有重复的,可以是空值;
索引:该字段没有重复值,单可以有一个空值;
作用:
主键:用来保证数据完整性
外键:用来和其他表建立联系
索引:是提高查询排序的速度
个数:
主键:主键只能有一个
外键:一个表可以有多个外键
索引:一个表可以有多个唯一索引
31、简述private、protected、public修饰符的访问权限
private:私有成员,在类的内部在可以访问;
protected:保护成员,该类的内部和继承类中可以访问;
public:公共成员,完全公开,没有访问限制;
32、堆和栈的区别?
堆:是程序运行期间动态分配内存空间,你可以根据程序的运行情况确定要分配的堆内存大小;
栈:是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;
php数组函数-array_combine()的更多相关文章
- 深度解析PHP数组函数array_combine
前些天写了一篇关于array_merge的函数解析. 今天来看一个新的函数array_combine() 此函数一共有两个参数,一个是合并后数组的键名,另一个为键值. 注意:合并后数组的键名放在第一个 ...
- 前端学PHP之数组函数
× 目录 [1]键值操作 [2]记数[3]回调函数[4]组合[5]栈和队列[6]顺序 前面的话 PHP中的数组功能非常强大,数组处理函数有着强大.灵活.高效的特点.PHP5提供了近100个操作数组的系 ...
- PHP函数积累总结(Math函数、字符串函数、数组函数)
Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...
- PHP学习之[第06讲]数组、多维数组和数组函数
一.数组 ①Array(“aa”,12,true,2.2,”test”,50); ②Array(“title”=>“aa”, ”age”=>20); 1.创建: $arr= array( ...
- PHP数组函数的分组归纳
统计: array_count_values 统计数组中所有的值出现的次数 array_product 计算数组中所有值的乘积 array_sum 计算数组中所 ...
- PHP数组函数详解大全
一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...
- php操作数组函数
整理了一份PHP开发中数组操作大全,包含有数组操作的基本函数.数组的分段和填充.数组与栈.数组与列队.回调函数.排序.计算.其他的数组函数等. 一.数组操作的基本函数 数组的键名和值 array_va ...
- php数组函数大全
一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...
- PHP之数组函数
php数组中的预定义变量 预定义常量 CASE_LOWER (integer) CASE_LOWER 用在array_change_key_case()中将数组的键名转换为小写字母.这也是array_ ...
随机推荐
- poj 2125(最小割)
题目链接:http://poj.org/problem?id=2125 思路:将最小点权覆盖转化为最小割模型,于是拆点建图,将点i拆成i,i+n,其中vs与i相连,边容量为w[i]-,i+n与vt相连 ...
- Java 基础巩固:装箱拆箱 你真的熟悉吗
先考两道题: Integer a1 = 300; Integer a2 =300; System.out.print(a1 == a2); Integer b1 = 1; Integer b2 = 1 ...
- 《从零开始学Swift》学习笔记(Day 46)——下标重写
原创文章,欢迎转载.转载请注明:关东升的博客 下标是一种特殊属性.子类属性重写是重写属性的getter和setter访问器,对下标的重写也是重写下标的getter和setter访问器. 下面看一个示例 ...
- 关于后台传来的json是含英文字母的string
最近帮朋友写东西,遇上一个比较坑的后台,传来的json是字符串,并且还伴有英文字符,类似 callback({xxx:xxx,xxx:xxx}),我打印了一下后台传来的数据格式,发现时string,所 ...
- C#动态删除控件
foreach (Control var in panel.Controls) { if (var is Billet) { panel.Controls.Remove(var); var.Dispo ...
- p:nth-last-child(2)
<!DOCTYPE html><html><head><style> p:nth-last-child(2){background:#ff0000;}& ...
- Null Coalescing Operator
w Parse error: syntax error, unexpected '?'
- GDI+的应用
在VS中创建窗体 (1)CDI+清除绘画面 在窗体中写入代码: protected override void OnPaint(PaintEventArgs e){ Graphics g=e.Grap ...
- 一、Nuxt简介
1.Nuxt是什么 Nuxt.js是基于vue的服务器端渲染框架,常用来做SSR(服务器端渲染) 2.为什么用Nuxt Vue开发的SPA(单页应用)不利于搜索引擎的SEO优化 3 ...
- MySQL错误日志提示innodb_table_stats和innodb_index_stats不存在故障处理
查看MySQL error日志,发现有如下报错 7efbc586f700 InnoDB: Error: Table "mysql"."innodb_table_stats ...