整理的一些PHP面试题目
1.strlen()和mb_strlen()的作用分别是什么?
strlen()和mb_strlen()的作用都是来获取字符串的长度,其中strlen()只针对单字节编码字符,也就是计算字符串的总字节数,如果是多字节编码,如gbk和utf8,使用strlen()获得的不是字符总数而是总字节数,可以使用mb_strlen来获取其字符的个数,使用mb_string要注意两点,一是要开启mbstring扩展,而是要指定字符集。
应用如下例
2.include和require都能把一个文件包含到当前文件中,两者有什么区别?include和include_once区别呢?
include函数会将指定的文件读入并且执行里面的程序;
require函数会将目标文件的内容读入,并且把自己本身代换成这些读入的内容;
include与require除了在处理引入文件的方式不同外,最大的区别就是:include在引入不存文件时产生一个警告且脚本还会继续执行,而require则会导致一个致命性错误且脚本停止执行。include与require除了在处理引入文件的方式不同外,最大的区别就是:include在引入不存文件时产生一个警告且脚本还会继续执行,而require则会导致一个致命性错误且脚本停止执行。
include_once (require_once)语句在脚本执行期间包含并运行指定文件。此行为和 include (require)语句类似,区别是如果该文件中的代码已经被包含了,则不会再次包含,只会包含一次。include_once(require_once)需要查询一遍已加载的文件列表, 确认是否存在, 然后再加载。include_once 语句在脚本执行期间包含并运行指定文件。此行为和 include 语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含一次;
3.POST和GET有什么区别?
1. GET是从服务器上获取数据,POST是向服务器传送数据。
2. GET是通过发送HTTP协议通过URl参数传递进行接收,而POST是实体数据,通过表单提交
3. GET传送的数据量较小,不能大于2KB。POST传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
4. GET安全性非常低,POST安全性较高。
4.foo()和@foo()之间有什么区别?
foo()会执行这个函数,任何解释错误,语法错误,执行错误都会在页面上显示出来。
@foo()在执行这个函数时,会隐藏上述的错误信息。
很多应用程序都会使用@mysql_connect()和@mysql_query来隐藏mysql的错误信息,这样不好,错误不应该被隐藏,应该妥善处理。
5.PHP中关于当前脚本,$_SERVER的有关信息。
客户端IP:$_SERVER["REMOTE_ADDR"]
服务器端IP:$_SERVER["SERVER_ADDR"]
获取当前脚本的执行路径:$_SERVER["SCRIPT_FILENAME"]或者__FILE__
当前脚本的名称:$_SERVER["PHP_SELF"]或者$_SERVER["SERIPT_NAME"]
链接到前一页的URL地址:$_SERVER["HTTP_REFERER"]
6.sort(),asort(),ksort(),arsort(),rsort()各有什么区别。
sort()对数组进行排序,当函数结束时数组单元将被从最低到最高重新安排。
rsort()对数组进行逆向排序。
asort()对数组进行排序并保持索引关系。
arsort()对数组进行逆向排序并保持索引关系。
ksort()对数组进行按照键名排序,保留键名到数据的关联,主要用于关联数组。
7.什么是可变变量?以下程序的输入值是什么?
获取一个普通变量的值作为这个可变变量的变量名。
以上程序输出:hotdogok
8.常量如何定义,如何检测一个常量是否被定义?
定义常量:define()
检测常量是否定义:defined(),例如
define("TEST","hello world");
if(defined("TEST")){
echo TEST;
}
9.执行程序段<?php echo 8%(-2) ?>,输出结果是:
%为取模运算,以上程序将输出0
$a%$b,其结果的正负取决于$a的符号。
echo ((-8)%3); //将输出-2
echo (8%(-3)); //将输出2
10.echo count("abc")将会输出什么;
count()函数计算数组中的单元数目或者对象中的属性个数,通常是一个array(),对于对象,如果安装了 SPL,可以通过实现 Countable 接口来调用 count()。该接口只有一个方法count(),此方法返回count()函数的返回值。
如果参数不是数组型或者实现了countable接口的对象,将返回 1,只有一个例外,如果参数是NULL,则结果是 0。
11.PHP中单引号和双引号有什么区别?哪个速度更快?
单引号更快
单引号内的数据不会被解析(任何变量和特殊转义字符),所以速度更快,而双引号内的数据会被解析,如变量($var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字。
单引号例如:
$name='hello';
echo 'the $name';
会输出 the $name
如果是双引号
$name='hello'
echo "the $name"
会输出 the hello
12.简述GBK,GBK2312,BIG5,GB18030
GB2312支持的汉字较少,GBK是相比GB2312汉字更为丰富,包括全部的中日韩汉字,GB18030相比GBK增加了一些少数民族汉字汉字库更为多样,常人很少用,一般简体中文使用GBK而繁体中文使用BIG5
13.简述empty()函数的用法
bool empty($var) 如果 var
是非空或非零的值,则 empty() 返回 FALSE
。换句话说,""、0、"0"、NULL
、FALSE
、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var
为空,则返回 TRUE
。
14.is_null()函数的用法?
检测变量是否为NULL,如果是null,则返回TRUE,否则返回FALSE。通常变量被认识是NULL有三种情况1.被赋值为NULL2.尚未被赋值3.被unset()。
15.接口与抽象类的区别是什么?
抽象类是不能被实例化的类,只能作为其他类的父类来使用,抽象类是通过关键字abstract来声明。
抽象类与普通类类似,都包含成员变量和成员方法,两者的区别在于,抽象类中至少包含一个抽象方法。
抽象方法没有方法体,该方法天生就是要被子类重写的。
抽象方法的格式为:abstr function abstractMethod()
接口是通过interface关键字来声明,接口中的成员常量和方法都是public的,方法可以不写关键字public。
接口中的方法也是没有方法体的,接口中的方法也是天生要被子类实现的。
抽象类和接口实现的功能十分相似,最大的不同是接口能实现多继承,在应用中选择抽象类还是接口要看具体实现。
子类继承抽象类使用extends,子类实现接口使用implements。
整理的一些PHP面试题目的更多相关文章
- PHP面试题目搜集
搜集这些题目是想在学习PHP方面知识有更感性的认识,单纯看书的话会很容易看后就忘记. 曾经看过数据结构.设计模式.HTTP等方面的书籍,但是基本看完后就是看完了,没有然后了,随着时间的推移,也就渐渐忘 ...
- 总结CSS面试题目的考察点及常见布局问题整理
整理网上流传的若干份面试题目,突发奇想,总结关于CSS面试题目的考察点,发现问题大多围绕几个属性和几种题目,水平有限,仅供参考. 写这个博文内心有种莫名奇妙的自我谴责感,实在不应该把面试层叠样式“应试 ...
- 2016年Web前端面试题目汇总
转载: 2016年Web前端面试题目汇总 以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中未解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢 ...
- C/C++ 笔试、面试题目大汇总 转
C/C++ 笔试.面试题目大汇总 这些东西有点烦,有点无聊.如果要去C++面试就看看吧.几年前网上搜索的.刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善. 1.求下面函数的返回值( ...
- (转)喜马拉雅2018 Java面试题目
背景:将网上的题目整理下. java基础 1:hashTable hashMap ConcurrentHashMap 的区别.数据结构.线程安全 2:equals和==区别, 重写equals一定要重 ...
- C++程序员面试题目总结(涉及C++基础、多线程多进程、网络编程、数据结构与算法)
说明:C++程序员面试题目总结(涉及C++基础知识.多线程多进程.TCP/IP网络编程.Linux操作.数据结构与算法) 内容来自作者看过的帖子或者看过的文章,个人整理自互联网,如有侵权,请联系作者 ...
- 全网最全C#实习面试题目
整个内容是我在春招面试时候整理的一些题目,里面涵盖有网上搬运的(由于当时没有记录来源,如果有转载没标注来源,请与我联系),还有我面试到的.整个排版很乱,后期我会一步一步整理.整个内容大概快有两万字.整 ...
- 2020阿里Java面试题目大汇总,看看你离阿里还有多远,附答案!
前言 首先说一下情况,我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等.也是有些辛苦.终于是在前不久拿 ...
- HTML/CS3相关面试题目
一.HTML/CS3基本面试题目. 1. 常用那几种浏览器测试? 1.1浏览器:IE,Chrome(谷歌),FireFox(火狐),Safari(苹果计算机的最新操作系统Mac OS X中的浏览器,使 ...
随机推荐
- JS实现雪花效果
演示效果 http://www.9696e.com/demo/snow/ 春节之前新一博客也会一直挂着的. 加载链接 <script src="http://www.9696e.com ...
- mvc2/3/4_伪静态_路由配置
一.路由规则: routes.MapRoute( name: "Default2", url: "{contr ...
- switch...case和if...else if的判断应用
判断成绩所属等级的 两种方法 1... switch...case方法: #include<stdio.h> int main(void) { ;i <= ;++i) // ...
- Linux文件目录权限总结
代表字符 权限 对文件含义 对目录含义 r 读权限 允许查看文件内容 允许列出目录中内容 w 写权限 允许修改文件内容 允许在目录中创建或删除文件 x 执行权限 允许执行文件 允许进入目录
- MyRocks简介
RocksDB是facebook基于LevelDB实现的,目前为facebook内部大量业务提供服务.经过facebook大量工作,将RocksDB为MySQL的一个存储引擎移植到MySQL,称之为M ...
- 百度BAE JAVA环境项目部署和调试
起初在一个应用挂在虚拟主机上,昨天早上虚拟主机挂了.本来考虑迁移到SAE上的,但之前发现SAE的JVM云豆消耗的太快(PS:我是中级开发者,每月 10000云豆,如果有哪位大神对SAE JAVA云豆能 ...
- dex分包变形记
腾讯Bugly特约作者:李金涛 一.背景 就在项目灰度测试前不久,爆出了在 Android 3.0以下手机上安装时出现 INSTALL _ FAILED_DEXOPT,导致安装失败.这一问题意味着项目 ...
- Java IO3:字节流
流类 Java的流式输入/输出是建立在四个抽象类的基础上的:InputStream.OutputStream.Reader.Writer.它们用来创建具体的流式子类.尽管程序通过具体子类执行输入/输出 ...
- 作业二:Github注册过程
第一步.打开Github官网https://github.com/ ,在相应位置填写注册名.注册邮箱.注册密码完成后点击注册. 第二步.这时会弹出一个界面,让你选择你的私人计划(personal pl ...
- 【吐血分享】SQL Server With As 递归获取层级关系数据
纯洁的一周又开始了,今天看到一则新闻,笑尿了,和袁友们一起娱乐下 最近两月在做基于Saas模式的人力资源管理产品,平常数据库设计我经常会遇到如下需求场景: 以前商城类网站在设计类型表的时候,设计成单表 ...