PHP简答题大题(含答案)_第1页
PHP简答题大题(含答案)_第2页
PHP简答题大题(含答案)_第3页
PHP简答题大题(含答案)_第4页
PHP简答题大题(含答案)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、重要知识点:1、变量赋值方式有哪几种?1)直接赋值$str=123;2)变量间赋值$arr=array();$arr=123;$arr=456;$a;$a=123;3)引用赋值$a=123;$b=$a;2、引用和拷贝有什么区别?拷贝是将原来的变量内容复制下来,拷贝后的变量与原来的变量使用各自的内存,互不干扰。引用相当于是变量的别名,其实就是用不同的名字访问同一个变量内容。当改变其中一个变量的值时,另一个也跟着发生变化。3、php 中变量有哪些基本数据类型?php 支持 8 种原始数据类型。包括:四种标量类型(布尔型 boolean,整型 interger,浮点型 float/double,字符

2、串 string)两种复合类型(数组 array,对象 object)两种特殊类型(资源 resource,NULL4、其它类型转换为 boolean 类型时,哪些被认为是 false?布尔值 false,整型值 0,浮点型值 0.0,空白字符串,字符串0,空数组,空对象,特殊数据类型 NULL,没有设定的变量。empty()函数在哪些情况下返回 true?布尔值 false,整型值 0,浮点型值 0.0,空白字符串,字符串0,array()空数组,特殊数据类型 NULL,没有任何属性的对象,没有赋值的变量。5、常量和变量有哪些区别?1)常量前没有$符号;2)常量只能通过 define()定义

3、,而不能通过赋值语句定义;3)常量可以在任何地方定义和访问,而变量定义的反问有固定的规则;4)常量一旦定义就不能被重新定义或者取消定义,而变量而通过赋值方式重新定义;5)常量的值只能是标量数据,而变量的数据库类型有 8 中原始数据类型。6、函数的优越性有哪些?提高程序的可维护性提高软件的可靠性提高程序的可重用性提高程序的开发效率7.如何定义一个函数?函数名区分大小写吗?1)使用 function 关键字;2)函数命名规则和变量一样,以字母或者下划线开头,而不能以数字开头;3)函数名不区分大小写;4)函数名不可以使用已经声明过的或者系统自建的函数名称。8 .什么是局部变量和全局变量?函数内是否可

4、以直接调用全局变量?局部变量是函数内部定义的变量,其作用域是所在的函数。如果函数外还有一个跟局部变量名字一样的变量,程序会认为它们两个是完全不同的两个变量。当退出函数的时候,其中的局部变量就同时被清除。全局变量是定义在所有函数以外的变量,其作用域是整个 php 文件,但是在用户自定义的函数内部是无法使用的。如果一定要在用户自定义的函数内部使用全局变量,那么就需要使用 global 关键字声明。也就是说如果在函数内的变量前加上 golbal 来修饰,那么函数内部就可以访问到这个全局变量,不仅可以利用这个全局变量进行运算而且可以对这个全局变量进行重新赋值。全局变量还可以使用$GLOBALSva 门

5、来调用。9 .php 中函数传递参数的方式有哪些?两者有什么区别?按值传递和按地址传递(或按引用传递)(1)按值传递、待传递的变量,与传递给函数之后的变量是存储在不同的空间中。所以函数体内对该变量值做的修改,不影响原本的变量值。(2)按地址传递、使用&符号,表明该参数是以地址的方式传递值。并不会将主程序中的指定数值或目标变量传递给函数,而是把该数值或变量的内存储存区块地址导入函数之中,所以函数体内的该变量和主程序中的该变量在内存中是同一个。函数体做的修改,直接影响到函数体外部的该变量的值。10 .控制流程语句有哪些?1、三种程序结构顺序结构、分支结构、循环结构2、分支:if/else/

6、elseif/switch/case/default3、switch 需要注意的:case 子句中的常量可以是整型、字符串型常量、或者常量表达式,不允许是变量。同一个switch 子句中,case 的值不能相同,否则只能取到首次出现 case 中的值。4、循环 forwhiledo.whiledo.while 后面必须加入分号结尾。while 和 do.while 的区别5、break 和 continue 的区别。break 可以终止循环。continue 没有 break 强大,只能终止本次循环而进入到下一次循环中。11 .数组的概念是什么?数组根据索引分为哪两种,如何区分?数组的赋值方式

7、有哪两种?数组是一个可以存储一组或一系列数值的变量(复合型变量)索引数组(索引值为数字,以 0 开始)和关联数组(以字符串作为索引值)数组的赋值方式有哪两种?数组的声明方式主要有两种。1 .通过 array()函数声明数组;可以通过 key=value 的方式分别定义索引和值,也可以不定义数组的索引下标,只给出数组的元素值。2 .直接为数组元素赋值,不需要调用 array()函数。例如:$arr0=1;$arr1=2;特别注意:数组的下标如果是等价于整数的字符串值(但不能以 0 开头),则会被当作整数对待。例如:$array3与$array3,引用的是相同的一个元素,而$array03引用的则

8、就是另外的一个元素了。12 .数组如何遍历?for 循环$arr=123;$arr=456;$arr=789;for=0;$icount($arr);$i+)echo$arr$i.;foreach 循环,这是最常用的遍历方式。用法如下:foreach($arras$key=$value)listeach 和 while 配合起来循环13 .foreach 数组的时候指针是如何指向的?list()/each()/while()循环数组的时候指针如何指向的呢?当 foreach 开始执行的时候,数组内部的指针会自动指向第一个单元。因为 foreach 所操作的是指定数组的拷贝,而不是该数组本身。而

9、 each()一个数组后,数组指针将停留在数组中的下一个单元或者碰到数组结尾时停留在最后一个单元。如果要再次使用 each()遍历数组,必须要使用 reset().reset()将数组的内部指针倒回到第一个单元并返回第一个数组单元的值。14 .如何计算数组长度(或者说计算数组中所有元素的个数)?字符串怎么取长度?count()-计算数组中的元素个数。可以使用 count(数组名)或者 count(数组名,1),如果有第二个参数,并且是数字 1,则表示递归统计数组元素的个数。如果第二个参数是数字 0,则等同于只有一个参数的 count()函数。sizeof()-count()的别名字符串:str

10、len()、mb_strlen();15 .数组中相关的常用函数有哪些?1)count-(sizeof 别名)一计算数组中的单元数目或对象中的属性个数例如:intcount(mixed$var,int$mode)$var 通常都是数组类型,任何其它类型都只有一个单元。$mode 默认值为 0.1 为开启递归地对数组计数2)in_array(mixed$needle,array$haystack,bool$strict)一检查数组中是否存在某个值。如果 needle 是字符串,则比较是区分大小写的。如果第三个参数strict的值为TRUE则in_array()函数还会检查needle的类型是否和

11、haystack中的相同。3)array_merge(array$array1,array$array2,array$.)4 各个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。特别注意:如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引4)数组与字符串之间的转换(1)explode(string$separator,string$string,int$limit)使用一个分隔字符来分隔一个字符串。(2

12、)implode(string$glue,array$arr)使用一个连接符将数组中的每个单元连接为一个字符串。join 为 implode 的别名5)sort(array&$array,int$sort_flags)一对数组按照值排序,当本函数结束时数组单元将被从最低到最高重新安排。16、数组合并函数 array_merge()和数组加法运算$arr+$arr2 的区别是什么?使用 array_merge(),如果是关联数组合并,如果数组的键名相同,那么后面的值将覆盖前者;如果是数字索引数组合并,则不覆盖,而是后者附加到前者后面。使用数组加法运算,与 array_merge()不同,

13、加法运算不管是关联数组还是数字索引数组,都是将相同键名的的值舍弃,也就是只保留首次出现该键名的元素,后来的具有相同键名的元素都不会被加进来。39.按照功能分类说说都有哪些字符串处理函数?这些函数的作用是什么?A.字符串输出函数(1)echo$a,$b,$c.;是一个语言结构,而不是一个真正的函数。(2)print($a)本函数输出字符串。若成功则返回 1,失败返回 0(3)print_r($a)(4)var_dump($a);能输出类型、长度、值B.去除字符串首尾空格的函数:trimltrimrtrim(别名:chop)使用第二个参数,还可以去除指定的字符。C.转义字符串函数:addslash

14、es()D.获取字符串长度的函数:strlen()E.截取字符串长度的的函数:substr()F.检索字符串函数:strstr(),strpos()G.替换字符串函数:str_replace()17 .页面字符出现乱码,怎么解决?1 .首先考虑当前文件是不是设置了字符集。查看是不是 meta 标签中写了 charset,如果是 php 页面还可以看看是不是在 header()函数中指定了 charset;例如:header(acontent-type、text/html;charset=utf-8);2 .如果设置了字符集(也就是 charset),那么判断当前文件保存的编码格式是否跟页面设置

15、的字符集保持一致,两者必须保持统一;3 .如果涉及到从数据库提取数据,那么判断数据库查询时的字符集是否跟当前页面设置的字符集一致,两者必须统一,例如:mysql_query(setnamesutf8)。18 .获取当前时间戳的函数主要有哪些?用 PHP 丁印出今天的时间,格式是 2010-12-1022:21:21?用 PHPT 印出前一天的时间格式是 2010-12-1022:21:21?如何把 2010-12-2510、30、25 变成 unix 时间戳?echodate(Y-m-dH、i、s,strtotime(-1,days);date(Y-m-dH、i、s,time();mktime

16、(小时,分钟,秒,月,天,年);/将时间信息转化为时间戳$unix_time=strtotime(2009-9-210、30、25);/变成 unix 时间戳echodate(Y-m-dH、i、s,$unix_time);/格式化为正常时间格式19 .连接数据库操作的步骤是什么?每一步的返回值是什么数据类型?尤其是mysql_query()返回什么数据类型?连接数据库操作的步骤:建立与 MySQL!艮务器的连接设置字符集;mysql_query(setnamesgb2312)选择要操作的数据库创建结果集将结果集中的一行记录读入数组中在网页上输出数组元素的值$conn=mysql_connect

17、(servername,username,passward);/打开连接mysql_select_db(guestbook,$conn);连接到指定的数据库$result=mysql_query(Select*fromguestbook,$conn);/创建结果集20、设计网站的过程和步骤是什么?可行性分析功能需求分析数据库设计页面设计后台程序开发测试发布21、表单操作的两种方式(get、post)的区别、联系和应用Post 是系统默认值。用 get 方式会将表单的值显示在 url 中,适合传输小量数据。用 post 方式则不会把表单的值显示在 url 中,适合大量数据的传送。$_GE 侬量和

18、$_POSTtB 是一个包含名称name和value的数组,这些名称和值都可以利用。22、文件操作,如上传、读、写、打开、关闭等操作fopen()文件打开, fclose()文件关闭, fread()文件读取, fwrite()文件写入 unlike()删除文件, file_exists(文件是否存在),kmdir(新建目录)23.Cookie 和 session 的区别和用法最大区别在于 session 是保存在服务端的内存里面, 而 cookie 保存于浏览器或客户端文件里面; session是基于访问的进程,记录了一个访问的开始到结束,当浏览器或进程关闭之后,session 也就“消失”

19、了,而 cookie 更多地被用于标识用户,它可以是长久的,用于用户跟踪和识别唯一用户,而 session又是以 cookie 为基础的编程题:1.请编写一个 php 页面,可以完成:通过表单接收一个整数 n,在网页上输出如下图形,比如用户输入了 4,则显示如下图形*farmornilnname=r,fritLTirethod=postaction=T,?php定义一个输出直角三角形图案的函数functiontrLangle5nuirj(for(Si=1;Si=Snum;(for($a=l;Sa=$i;$a+)echo)echoF;)triangle($_POSTnrriangel_lineB

20、n1;定义碍至I文本框中的值传入函数辕出?(2)*6?php“定义一个输出直角三角形图案的函数functiontriangle9(for(Si=1;5i=Snum;S1+)/输出几行111_12for$a-$nuni-$i;$a+)控制输出空白键13ectiotnfcsp;14for($b=l;$b=(;$b+)控制星号虻216echon*n;1713echohrt;1920-triangle(S_PQ5TrTtriangel_line3,Fl);定义得至.文本框中的值传入函数鞘出22?*l?php“定义一个输出直角三的形图案的函数functiontriangle(Snum)9for($i=$

21、nnni;-)i由大变小11(12for($a=l;$a控制输出空白键echo;1415for(Sb-1;Sb;19)20_,triangle(_POSTlines);/定义得到文本框中的值传入函数辘出22?2 .写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组。(不能使用系统已有函数)冒泡排序(数组排序)functionbubble_sort($array)($count=count($array);if($count=0)returnfalse;for($i=0;$i$i;$j-)if($array$j$array$j-1)$tmp=$array$j;$array$j=$array$j-1;$array$j-1=$tmp;)return$array;)快速排序(数组排序)functionquicksort($array)if(count($array)=1)return$array;$key=$array0;$

温馨提示

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

评论

0/150

提交评论