整理的一些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中的浏览器,使 ...
随机推荐
- 定时自动关闭messagebox
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- React 随笔二
这周做的demo3和demo4.5 随记的小点. 1.js错误提示: Warning: Each child in an array or iterator should have a unique ...
- map() 函数
map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如,对于li ...
- Linux(centeros)下安装jdk
首先需要说明的是有的Linux系统自带jdk,这个jdk是openjdk,可以通过java-version查看 所以安装的步骤是,首先删除系统自带的(如果有)openjdk 1. rpm -qa | ...
- java中对List<Map<String,Object>>中的中文汉字排序
import java.text.Collator;import java.util.ArrayList;import java.util.Collections;import java.util.C ...
- (转载)JAVA敏捷开发环境搭建
整个软件项目分为四个环境 开发本地环境.开发环境.测试环境.IDC环境.和传统C++开发不一样的模式是多了第一个开发本地环境.这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发.对于 ...
- http://blog.sina.com.cn/s/blog_4c3b6a070100etad.html
http://blog.sina.com.cn/s/blog_4c3b6a070100etad.html
- go json null字段的转换
最近试了试go中对json null字段进行转换,代码如下: struct 转 json: package main import ( "encoding/json" " ...
- ASP.NET MVC3 Razor 初心者容易遇到的問題(转)
这是一些相关的文章地址 http://demo.tc/Post/679 http://blog.csdn.net/cheny_com/article/details/6298496
- DirectXMath
DirectXMath 是Windows平台下的数学库,DirectXMath 库基于 XNA Math C++ SIMD library version 2.04 . DirectXMath 库 ...