ddchuxing——php面试题及答案
1. echo和print的区别
echo没有返回值,print有返回值1,执行失败时返回false;echo输出的速度比print快,因为没有返回值;echo可以输出一个或多个字符串,print只允许输出一个字符串;print可以用于复杂的表达式,echo不行。
另问:echo是个函数吗? echo不是函数,是语言结构。具体的解释可参见http://www.cnblogs.com/m1001m/archive/2013/03/24/2978219.html
2. 说几组数组有关函数
实在太多了,这里写几个好了,完整版参见http://www.runoob.com/php/php-ref-array.html
array() 创建数组。
array_diff() 比较数组,返回差集(只比较键值)。
array_pop() 删除数组的最后一个元素(出栈)。
array_rand() 返回数组中一个或多个随机的键。
array_replace() 使用后面数组的值替换第一个数组的值。
array_reverce() 以相反的顺序返回数组。
array_shift() 删除数组中首个元素,并返回被删除元素的值。
array_slice() 返回数组中被选定的部分。
array_splice() 删除并替换数组中指定的元素。
arsort() 对关联数组按照键值进行降序排序。
end()将数组的内部指针指向最后一个元素。
in_array() 检查数组中是否存在指定的值。
krsort() 对数组按照键名逆向排序。
next() 将数组中的内部指针向前移动一位。
reset() 将数组的内部指针指向第一个元素。
3. php中的魔术函数举例 哎呦,我脑子一抽就说出来了魔术变量,醉了。
关于魔术函数呢,各方资料解释都不尽相同,大家多翻一翻,看看哪种说法你自己更容易理解。
__construct() 允许在实例化一个类之前先执行构造方法。
__destruct() 析构方法允许在销毁一个类之前执行的一些操作或完成一些功能。
__get(string $name) 用于获取私有属性值。读取一个对象的属性时, 若属性存在,则直接返回属性值;若不存在,则会调用__get函数。
__set(string $name,mixed $value) 用于设置私有属性。设置一个对象的属性时, 若属性存在,则直接赋值;若不存在,则会调用__set函数。
__call(string $name,array $arguments) 用于监视错误的方法调用。对象调用某个方法,若方法存在,则直接调用; 若不存在,则会去调用__call函数。静态方法中调用不存在或者不可访问的方法时,会调用__callStatic(string $name, array $arguments) 方法。
__tostring() 当打印对象时会被直接调用。如echo $obj;或print $obj。
__clone() 当对象被拷贝时直接调用。如$t=new Test();$t1=clone $t。
__sleep() serialize之前被调用。若对象比较大,想删减一点再序列化,可考虑一下此函数。
__wakeup() unserialize() 会检查是否存在一个 __wakeup() 方法。如果存在,则会先调用__wakeup 方法,预先准备对象需要的资源。
__isset() 检测一个对象的属性是否存在时被调用。如:isset($c->name)。
__unset() unset一个对象的属性时被调用。如:unset($c->name)。
__set_state() 调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
__autoload() 实例化一个对象时,如果对应的类不存在,则该方法被调用。
__invoke() 当尝试以调用函数的方式调用一个对象时,__invoke 方法会被自动调用。
4. 往数据库里插入字段的MySQL语句
假设我们的表名是users:
ALTER TABLE 'users' ADD 'uName' VARCHAR(200) NOT NULL AFTER 'uId'; //在uId字段后面加uName字段,中间的varchar 200 notnull都是属性
※那么问题来了,删除和修改语句都是什么呢?
ALTER TABLE 'users' DROP 'uName'; // 删除uName字段
ALTER TABLE 'users' CHANGE 'uName' 'uId' INT(6) NOT NULL; //将字段uName改为uId
5. LAMP和LNMP的区别
LAMP==Linux+Apache+Mysql+PHP
LNMP==Linux+Nginx+Mysql+PHP
感谢博主——啄木鸟http://blog.sina.com.cn/s/blog_626998030102wofn.html
6. HTTP请求错误返回码都有哪些?
3xx : 重定向
301: 已移动 — 请求的数据具有新的位置且更改是永久的。 302: 已找到 — 请求的数据临时具有不同 URI。
303: 请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此 应。
304: 未修改 — 未按预期修改文档。
305: 使用代理 — 必须通过位置字段中提供的代理来访问请求的资源。 306: 未使用 — 不再使用;保留此代码以便将来使用。 4xx: 客户机中出现的错误
400: 错误请求 — 请求中有语法问题,或不能满足请求。 401: 未授权 — 未授权客户机访问数据。 402: 需要付款 — 表示计费系统已有效。 403: 禁止 — 即使有授权也不需要访问。
404: 找不到 — 服务器找不到给定的资源;文档不存在。 407: 代理认证请求 — 客户机首先必须使用代理认证自身。
415: 介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。 5xx: 服务器中出现的错误
500: 内部错误 — 因为意外情况,服务器不能完成请求。 501: 未执行 — 服务器不支持请求的工具。
502: 错误网关 — 服务器接收到来自上游服务器的无效响应。
503: 无法获得服务 — 由于临时过载或维护,服务器无法处理请求。 900:内部错误(由程序运行时抛出异常终止请求,而生成的结果) 901:连接超时 902:响应超时 903:IO异常
904:数据用尽(参数化时数据取尽) 905:未知主机异常
906:URL协议异常(url格式错误)
907:证书错误(https请求时使用本地证书,由证书问题导致的异常) 908:socket连接错误 910:IO异常中断 911:非法状态 912:不支持的操作 913:连接关闭
914:没有http响应 915:请求中止
※问题又来了,请求成功返回什么呢?
2xx: 成功
200: 正常;请求已完成。 201: 正常;紧接 POST 命令。
202: 正常;已接受用于处理,但处理尚未完成。 203: 正常;部分信息 — 返回的信息只是一部分。
204: 正常;无响应 — 已接收请求,但不存在要回送的信息。
7. php版本之间的差异了解多少?目前php最新版本是?
php版本更新太快了,每个月好几版,2016.11.10号出的7.0.13版本。版本之间的差异我也搞不太清楚,有熟悉的朋友拜托指教。
8. (用JS代码书写Ajax异步数据传输?)
讲真,这个问题的具体的问法我记不清楚了,所以我括起来了。貌似是说页面跳转?把数据传送到另一个页面?
9. 字段为什么要加索引,哪些字段需要加索引?
使用索引可快速访问数据库表中的特定信息,建立索引的目的是加快对表中记录的查找或排序。
为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
至于哪些数据需要加索引,还是需要了解加索引的原则,http://www.360doc.com/content/11/1028/20/7695581_159948053.shtml。这里摘抄下重点:① 对于查询中很少涉及的列或重复值比较多的列,不要建立索引; ② 对于按范围查询的列,最好建立索引; ③ 表中若有主键或外键,一定要为其建立索引。
※那么问题来了:什么是主键、外键?聚集索引和非聚集索引的区别?
10. 因为我个人有一些Linux系统开发经验,面试官问我熟悉的linux命令有哪些?
命令多的一拼,具体参见:http://www.runoob.com/linux/linux-command-manual.html。
这里列举几个常用的吧:
改变文件的权限:chmod
切换目录:cd
显示当前所在目录:pwd
建立新目录:mkdir
删除空的目录:rmdir
列出目前工作目录所含之文件及子目录:ls
复制档案或目录:cp
返回路径中的文件名:basename
返回路径中的目录:dirname
寻找特定档案:whereis locate find
抱歉,可能一些写的并不正确,希望看到的朋友指教,谢谢!
ddchuxing——php面试题及答案的更多相关文章
- Android 面试题及答案(2)
1.Activity相关.launchmode,OnSaveInstnceState,生命周期等. 4种默认的launchmode,以及OnNewIntent的回调. OnNewIntent-> ...
- java常见面试题及答案 1-10(基础篇)
java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...
- php面试题及答案收藏(转)
php面试题及答案收藏(这套试题是在网上看到的,不知作者是谁) 基础题 1.表单中 get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据, ...
- 计算机组成原理往年试题以及答案(tzf!!!)
计算机组成原理往年试题以及答案(下载链接!!!) 太子妃升职记(1~36) ::http://pan.baidu.com/s/1dDP5Kqd
- Linux面试题汇总答案
转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的 ...
- 最全的iOS面试题及答案-转载
1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承:可以实现多个接口,通过实现 ...
- jQuery经典面试题及答案精选(转)
jQuery是一款非常流行的Javascript框架,如果你想要从事Web前端开发这个岗位,那么jQuery是你必须掌握而且能够熟练应用的一门技术.本文整理了一些关于jQuery的经典面试题及答案,分 ...
- php经典面试题与答案(转先锋教程网)
php经典面试题与答案 时间:2016-02-29 16:06:23来源:网络 导读:php经典面试题与答案,包括腾讯php面试题.百度php面试题.新浪php面试题等 php面试题及答案 1,禁 ...
- 经典71道Android试题及答案
本文为开发者奉献了70道经典Android面试题加答案--重要知识点几乎都涉及到了,你还等啥,赶紧收藏吧!! 1. 下列哪些语句关于内存回收的说明是正确的? (b) A. 程序员必须创建一个线程来释放 ...
随机推荐
- Network | Cookie and Session
Cookies are arbitrary pieces of data chosen by the web server and sent to the browser. The browser r ...
- SecureCRT设置每次连接使用后的日志
- #pragma预处理命令【转】
原文 : http://www.cnblogs.com/qinfengxiaoyue/archive/2012/06/05/2535524.html #pragma可以说是C++中最复杂的预处理指令了 ...
- Hadoop部署启动异常问题排查
hadoop的日志目录(/home/hadoop/app/hadoop-2.6.4/logs) 1.hadoop启动不正常用浏览器访问namenode的50070端口,不正常,需要诊断问题出在哪里: ...
- hibernate save update merge 区别
1.save save的对象是临时对象,首先将对象写入缓存,使其变为持久对象. save函数底层使用的是Insert语句,因此如果数据库中已经存在相同ID的记录,那么会报错 2.update upda ...
- 使用Shiro
一.架构 要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙.Shiro的应用不依赖任何容器,它也可以在JavaSE下使用.但是最常用的环境还是JavaEE.下面以 ...
- ES6 rest与扩展运算符
1.rest 变量将多余的参数放入数组中. function add(...values) { let sum = 0; for (var val of values) { sum += val; } ...
- 可软件定义的存储逻辑——Efficient and agile storage management in software defined environments
note:写这个或许算是翻译,又或算是对这个论文[1]的理解,又或者仅仅是我的看法. 这篇论文和IOFlow相比較,更加注重软件定义存储的框架(利用已有的框架来创建新的 ...
- 《Head First 设计模式》学习笔记——观察者模式 + 装饰者模式
装饰者模式是JDK中还有一个使用较多的设计模式,上一个是观察者模式(在Swing中大量使用),业内好的API设计无一离不开常见的设计模式,通常我们所说要阅读源代码,也是为了学习大牛们的设计思路.--- ...
- zoj 2949 - Coins of Luck
题目:有2中面条各n碗.每次抛硬币推断吃哪一种(到一种吃完为止).问抛硬币的数学期望. 分析:动态规划.概率dp.求出每种结束状态(即,有一种吃完)的概率,分别乘以步长即为期望. 大黄解法:状态位剩余 ...