php综合复习题大全_第1页
php综合复习题大全_第2页
php综合复习题大全_第3页
php综合复习题大全_第4页
php综合复习题大全_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

php综合复习题大全

php综合复习题大全

1.变量如何定义?

2.如何检查变量是否认义?

isset()

3.如何删除一个变量?

unset()

4.判断一个变量是否为空的函数?

empty()

5.什么是可变变量?

获取一个普通变量的值作为这个可变变量的变量名。

6.php中变量有哪些根本数据类型?

php支持8种原始数据类型。

包括:

四种标量类型〔布尔型boolean,整型integer,浮点型float/double,字符串string〕

两种复合类型(数组array,对象object)

两种特殊类型〔资源resource,NULL〕

7.其它类型转换为boolean类型时,哪些被认为是false?

布尔值false,整型值0,浮点型值0.0,空白字符串,字符串'0',空数组,空对象,特殊数据类型NULL,没有设定的变量。

8.标量数据和数组的最大区别是什么?

一个标量只能寄存一个数据,而数组可以寄存多个数据。

9.常量如何定义《如何检测一个常量是否被定义?

define(),defined()

10.常量的值只能是哪些数据类型?

常量的值只能是标量类型的数据。

11.常量分为系统内置常量和自定义常量。请说出最常见的几个系统内置常量?

__FILE__,__LINE__,PHP_OS,PHP_VERSION

12.如果定义了两个相同的常量,前者和后者哪个起作用?

前者起作用,因为常量一旦定义就不能被重新定义或者取消定义。

13.常量和变量有哪些区别?

1〕常量前没有$符号;

2〕常量只能通过define()定义,而不能通过赋值语句定义;

3〕常量可以在任何地方定义和访问,而变量定义的访问有固定的规那么;

4〕常量一旦定义就不能被重新定义或者取消定义,而变量而通过赋值方式重新定义;

5〕常量的值只能是标量数据,而变量的数据库类型有8中原始数据类型。

14.PHP中常用的几个预定义的全局数组变量是哪些?

有9大预定义的内置数组变量:

$_POST,$_GET,$_REQUEST,$_SESSION,$_COOKIE,$_FILES,$_SERVER,$_ENV,$GLOBALS

15.在实际开发中,常量最常用于哪些地方?

1〕连接数据库的信息定义成常量,如数据库效劳器的用户名、密码、数据库名、主机名;

2〕将站点的局部路径定义成常量,如web绝对路径,smarty的安装路径,model、view或者controller的文件夹路径;

3〕网站的公共信息,如网站名称,网站关键词等信息。

16.函数的优越性有哪些?

17.函数名起名有哪些标准?函数名辨别大小写吗?

1〕函数名以字母或者下划线开头;

2〕函数名不辨别大小写;

3〕函数名不可以使用已经声明过的或者系统自建的函数名称。

18.什么是变量的能见度?

就是变量在程序中的可作用范围。根据变量的能见度,变量分为部分变量和全局变量。

19.什么是部分变量和全局变量?函数内是否可以直接调用全局变量?

部分变量是函数内部定义的变量,其作用域是所在的函数。如果函数外还有一个跟部分变量名字一样的变量,

程序会认为它们两个是完全不同的两个变量。当退出函数的时候,其中的部分变量就同时被去除。

全局变量是定义在所有函数以外的变量,其作用域是整个php文件,但是在用户自定义的函数内部是无法使用的。

如果一定要在用户自定义的函数内部使用全局变量,则就需要使用global关键字声明。

也就是说如果在函数内的变量前加上golbal来修饰,则函数内部就可以访问到这个全局变量,

不仅可以利用这个全局变量进行运算而且可以对这个全局变量进行重新赋值。

20.global关键词如何使用?预定义的全局变量数组$GLOBALS如何使用?

21.什么是静态变量?

22.php中函数传递参数的方式有哪些?两者有什么区别?

按值传递和按地址传递〔或按引用传递〕

23.什么是递归函数?如何进行递归调用?

递归函数其实就是调用自身的函数,但是必须满足下列两个条件:

1〕在每一次调用自身时,必须是更接近于最终结果;

2〕必须有一个确定的递归终止条件,不会造成死循环。

举例表明:

在实际工作中往往会在遍历文件夹的时候使用。

如果有个例子是希望获取到目录windows下所有的文件,则先遍历windows目录,如果发现其中还有文件夹,则就会调用自身,继续往下寻找,依次类推,

直到遍历到再也没有文件夹为止,这也就是意味着遍历出来了所有的文件。

24.include()和require()函数的用法和区别是什么?

25.说出前置++和后置++的区别?

26.什么是三目〔或三元〕运算符?

叙述式1《叙述式2:叙述式3

27.switch语句使用的考前须知有哪些?

28.break和continue使用过程中有哪些区别?

break可以终止循环。

continue没有break强大,只能终止本次循环而进入到下一次循环中。

29.数组根据索引分为哪两种,如何辨别?

数字索引数组和关联数组。

30.数组的赋值方式有哪两种?

数组的声明方式主要有两种。

1.通过array()函数声明数组;

可以通过key=>value的方式分别定义索引和值,也可以不定义数组的索引下标,只给出数组的元素值。

2.直接为数组元素赋值,不需要调用array()函数。示例:

$arr[0]=1;

$arr[1]=2;

31.数组如何遍历?

foreach()

32.foreach数组的时候指针是如何指向的?list()/each()/while()循环数组的时候指针如何指向的呢?

当foreach开始执行的时候,数组内部的指针会自动指向第一个单元。因为foreach所操作的是指定数组的拷贝,而不是该数组本身。

而each()一个数组后,数组指针将停留在数组中的下一个单元或者碰到数组结尾时停留在最后一个单元。如果要再次使用each()遍历数组,必须要使用reset().

reset()将数组的内部指针倒回到第一个单元并返回第一个数组单元的值。

32.如何计算数组长度〔或者说计算数组中所有元素的个数〕?字符串怎么取长度?

count()--计算数组中的元素个数。

可以使用count(数组名)或者count(数组名,1),如果有第二个参数,并且是数字1,那么表示递归统计数组元素的个数。

如果第二个参数是数字0,那么等同于只有一个参数的count()函数。

sizeof()--count()的别名

字符串:strlen()、mb_strlen();

33.数组排序的常用函数?数组合并的常用函数?

sort(),array_merge();+array_combine();

34.数组合并函数array_merge()和数组加法运算的区别是什么?

35.字符串定义的时候单引号和双引号有什么区别?

36.echo()和print()的区别是什么?

37.按照分类说说都有哪些字符串处理函数?这些函数的作用是什么?

38.正那么叙述式是什么?php中有哪些常用的跟正那么相关的函数?

正那么叙述式是用于描述字符排列模式的一种语法规那么。正那么叙述式也叫做模式叙述式。

网站开发中正那么叙述式最常用于表单提交信息前的客户端验证。

比方验证用户名是否输入正确,密码输入是否合乎要求,email、手机号码等信息的输入是否合法。

在php中正那么叙述式主要用于字符串的分割、匹配、查找和替换操作。

preg系列函数可以处理。具体有下列几个:

stringpreg_quote(stringstr[,stringdelimiter])

转义正那么叙述式字符正那么叙述式的特殊字符包括:.\\+*《[^]$(){}=!|:。

preg_replace--执行正那么叙述式的搜索和替换

mixedpreg_replace(mixedpattern,mixedreplacement,mixedsubject[,intlimit])

preg_replace_callback--用回调函数执行正那么叙述式的搜索和替换

mixedpreg_replace_callback(mixedpattern,callbackcallback,mixedsubject[,intlimit])

preg_split--用正那么叙述式分割字符串

arraypreg_split(stringpattern,stringsubject[,intlimit[,intflags]])

39.获取当前时间戳的函数主要有哪些?

40.header()函数主要的功能有哪些?使用过程中注意什么?

41.empty()函数哪些情况下返回true?

布尔值false,

整型值0,

浮点型值0.0,

空白字符串,

字符串'0',

array()空数组,

特殊数据类型NULL,

没有任何属性的对象,

没有赋值的变量。

42.连接数据库操作的步骤是什么?每一步的返回值是什么数据类型?

$coon=mysql_connect('localhost','root','');//返回资源类型

mysql_select_db('bbs',$coon);//布尔类型

mysq_query('setnamesutf8');

//布尔类型

$qry=mysql_query('select*frombbsinfo');

//资源类型

mysql_fetch_row($qry);//数组类型

43.说说mysql_affected_rows(),mysql_insert_id()的用法?

44.列举常用的文件处理函数,分别返回什么数据类型?

//对文件操作

$file="a.txt";

$fp=fopen($file,'a+');//资源类型

$fd=fread($fp,10);//字符串

$fw=fwrite($fp,'国家宁');//整型(写入的长度)

45.文件上传需要注意哪些细节?怎么把文件保留到指定目录?怎么防止上传文件重名问题?

1.首现要在php.ini中开启文件上传;

2.在php.ini中有一个允许上传的最大值,默认是2MB。必要的时候可以更改;

3.上传表单一定要记住在form标签中写上enctype="multipart/form-data";

4.要注意上传文件的大小、文件类型是否合乎要求,上传后寄存的路径是否存在。

可以通过上传的文件名获取到文件后缀,然后使用时间戳+文件后缀的方式为文件重新命名,这样就防止了重名。

可以自己设置上传文件的保留目录,与文件名拼凑形成一个文件路径,使用move_uploaded_file(),就可以完成

将文件保留到指定目录。

46.$_FILES是几维数组?第一维和第二维的索引下标分别是什么?

二维数组。第一维是上传控件的name,二维下标分别为name/type/tmp_name/size/error.

47.什么是ajax?ajax的原理是什么?ajax的核心技术是什么?ajax的优缺点是什么?

ajax是asynchronousjavascriptandxml的缩写,是javascript、xml、css、DOM等多个技术的组合。

Ajax的工作原理是一个页面的指定位置可以加载另一个页面所有的输出内容,这样就实现了一个静态页面也能获取到

数据库中的返回数据信息了。所以ajax技术实现了一个静态网页在不刷新整个页面的情况下与效劳器通信,

减少了用户等待时间,同时也从而降低了网络流量,增强了客户体验的友好程度。

Ajax的优点是:

1.

减轻了效劳器端负担,将一局部以前由效劳器负担的工作转移到客户端执行,利用客户端闲置的资源进行处理;

2.

在只部分刷新的情况下更新页面,增加了页面反馈速度,使用户体验更友好。

Ajax的缺点是不利于seo推广优化,因为搜索引擎无法直接访问到ajax请求的内容。

ajax的核心技术是XMLHttpRequest,它是javascript中的一个对象。

48.jquery是什么?jquery简化ajax后的办法有哪些?

49.什么是会话控制?

50.使用cookie的考前须知有哪些?

1〕setcookie()之前不可以有任何页面输出,就是空格,空白行也不可以;

2〕setcookie()后,在当前页面调用$_COOKIE['cookiename']不会有输出,必须刷新或到下一个页面才可以看到cookie值;

3〕不同的浏览器对cookie处理不同,客户端可以禁用cookie,浏览器也可以闲置cookie的数量,一个浏览器能创立的cookie数量最多300个,并且每个不可以超过4kb,

每个web站点能设置的cookie总数不能超过20个。

4〕cookie是保留在客户端的,用户禁用了cookie,则setcookie就不会起作用了。所以不可以过度依赖cookie。

41.使用session的时候,通过什么来表示当前用户,从而与其他用户进行辨别?

sessionid,通过session_id()函数可以取得当前的session_id。

42.session和cookie的使用步骤分别是什么?什么是sesssion和cookie的生命周期?session和cookie的区别是什么?

cookie是保留在客户端机器的,对于未设置过期时间的cookie,cookie值会保留在机器的内存中,只要关闭浏览器那么

cookie自动消失。如果设置了cookie的过期时间,则浏览器会把cookie以文本文件的形式保留到硬盘中,

当再次翻开浏览器时cookie值依然有效。

session是把用户需要存储的信息保留在效劳器端。每个用户的session信息就像是键值对一样存储在效劳器端,

其中的键就是sessionid,而值就是用户需要存储信息。效劳器就是通过sessionid来辨别存储的session信息是

哪个用户的。

两者最大的区别就是session存储在效劳器端,而cookie是在客户端。session平安性更高,而cookie平安性弱。

session在web开发中具有非常重要的份量。它可以将用户正确登录后的信息记录到效劳器的内存中,当用户以此身份

访问网站的管理后台时,无需再次登录即可得到身份确认。而没有正确登录的用户那么不分配session空间,即便输入了

管理后台的访问地址也不能看到页面内容。通过session确定了用户对页面的操作权限。

使用session的步骤:

1.启动session:

使用session_start()函数来启动。

2.注册会话:

直接给$_SESSION数组添加元素即可。

3.使用会话:

判断session是否为空或者是否已经注册,如果已经存在那么像普通数组使用即可。

4.删除会话:

1.可以使用unset删除单个session;

2.使用$_SESSION=array()的方式,一次注销所有的会话变量;

3.使用session_destroy()函数来彻底销毁session。

cookie怎么使用?

1.记录用户访问的局部信息

2.在页面间传递变量

3.将所查看的internet页存储在cookies临时文件夹中,可以提高以后的浏览速度。

创立cookie:

setcookie(stringcookiename,stringvalue,intexpire);

读取cookie:

通过超级全局数组$_COOKIE来读取浏览器端的cookie的值。

删除cookie:有两种办法

1.手工删除办法:

右击浏览器属性,可以看到删除cookies,执行操作即可将所有cookie文件删除。

2.setcookie()办法:

跟设置cookie的办法一样,不过此时讲cookie的值设置为空,有效时间为0或小于当前时间戳。

43.在实际开发中,session在哪些场合使用?

session用来存储用户登录信息和用在跨页面传值。

1〕常用在用户登录成功后,将用户登录信息赋值给session;

2〕用在验证码图片生成,当随机码生成后赋值给session。

44.注销session会话的形式有几种?

45.什么是OOP《什么是类和对象?什么是类属性?OOP的三大特性是什么?

OOP(objectorientedprogramming),即面向对象编程,其中两个最重要的概念就是类和对象。

世间万物都具有自身的属性和办法,通过这些属性和办法可以辨别出不同的物质。

属性和办法的汇合就形成了类,类是面向对象编程的核心和根底,

通过类就将零散的用于实现某个功能的代码有效地管理起来了。

类只是具备了某些功能和属性的抽象模型,而实际应用中需要一个一个实体,也就是需要对类进行实例化,

类在实例化之后就是对象。

OOP具有三大特点:

1.封装性:

也称为信息隐藏,就是将一个类的使用和实现分开,只保存局部接口和办法与外部联系,或者说只公开了一些供开发人员使用的办法。

于是开发人员只需要关注这个类如何使用,而不用去关怀其具体的实现过程,这样就能实现MVC分工合作,也能有效防止程序间相互依赖,

实现代码模块间松藕合。

2.继承性:

就是子类自动继承其父级类中的属性和办法,并可以可以添加新的属性和办法或者对局部属性和办法进行重写。继承增加了代码的可重用性。

php只支持单继承,也就是说一个子类只能有一个父类。

3.多态性:

子类继承了来自父级类中的属性和办法,并对其中局部办法进行重写。

于是多个子类中虽然都具有同一个办法,但是这些子类实例化的对象调用这些相同的办法后却可以获得完全不同的结果,这种技术就是多态性。

多态性增强了软件的灵活性。

46.常用的属性的访问修饰符有哪些?分别代表什么含义?

private,protected,public。如果不使用这三个关键词,也可以使用var关键字。但是var不可以跟权限修饰词一起使用。

47.$this和self、parent这三个关键词分别代表什么?在哪些场合下使用?

48.类中如何定义常量、如何类中调用常量、如何在类外调用常量。

类中的常量也就是成员常量,常量就是不会改变的量,是一个恒值。

定义常量使用关键字const.

示例:constPI=3.1415326;

无论是类内还是类外,常量的访问和变量是不一样的,常量不需要实例化对象,

访问常量的格式都是类名加作用域操作符号〔双冒号〕来调用。

即:类名::类常量名;

48.作用域操作符::如何使用?

49.什么是魔术办法?常用的魔术办法有哪几个?

50.什么是构造办法和析构办法?

构造办法就是在实例化一个对象的同时自动执行的成员办法,作用就是初始化对象。

php5之前,一个跟类名完全相同的办法是构造办法,php5之后魔术办法__construct()就是构造办法。

如果类中没有定义构造办法,则php会自动生成一个,这个自动生成的构造办法没有任何参数,

没有任何操作。

构造办法的格式如下:

function__construct(){}

或者:function类名(){}

构造办法可以没有参数,也可以有多个参数。

析构办法的作用和构造办法正好相反,是对象被销毁时被自动调用的,作用是释放内存。

析构办法的定义办法为:__destruct();

因为php具有垃圾回收机制,能自动去除不再使用的对象,释放内存,一般情况下可以不手动创立析构办法。

51.__autoload()办法的工作原理是什么?

使用这个魔术函数的根本条件是类文件的文件名要和类的名字保持一致。

当程序执行到实例化某个类的时候,如果在实例化前没有引入这个类文件,则就自动执行__autoload()函数。

这个函数会根据实例化的类的名称来查找这个类文件的路径,当判断这个类文件路径下的确存在这个类文件后

就执行include或者require来载入该类,然后程序继续执行,如果这个路径下不存在该文件时就提示错误。

使用自动载入的魔术函数可以不必要写很多个include或者require函数。

52.什么是抽象类和接口?抽象类和接口有什么不同和相似的地方?

抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。

抽象类是通过关键字abstract来声明的。

抽象类与普通类相似,都包含成员变量和成员办法,两者的区别在于,抽象类中至少要包含一个抽象办法,

抽象办法没有办法体,该办法天生就是要被子类重写的。

抽象办法的格式为:abstractfunctionabstractMethod();

因为php中只支持单继承,如果想实现多重继承,就要使用接口。也就是说子类可以实现多个接口。

接口类是通过interface关键字来声明的,接口类中的成员常量和办法都是public的,办法可以不写关键字public,

接口中的办法也是没有办法体。接口中的办法也天生就是要被子类实现的。

抽象类和接口实现的功能十分相似,最大的不同是接口能实现多继承。在应用当选择抽象类还是接口要看具体实现。

子类继承抽象类使用extends,子类实现接口使用implements。

53.__call的参数有几个,类型是什么,意义是什么?

魔术办法__call()的作用是当程序调用一个不存在或不可见的成员办法时,php会先调用__call()办法,

将那个不存在的办法的办法名和参数都存储下来。

__call()包含两个参数,第一个参数是那个不存在的办法的办法名,是个字符串类型;

第二个参数是那个不存在的办法的所有参数,是个数组类型。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论