您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > php综合复习题大全-100题
1.变量如何定义?如何检查变量是否定义?如何删除一个变量?判断一个变量是否为空的函数?$isset()unset()empty()2.什么是可变变量?可以动态设置和使用的变量叫可变变量3.变量赋值方式有哪几种?1)直接赋值2)变量间赋值3)引用赋值4.引用和拷贝有什么区别?拷贝是将原来的变量内容复制下来,拷贝后的变量与原来的变量使用各自的内存,互不干扰。引用相当于是变量的别名,其实就是用不同的名字访问同一个变量内容。当改变其中一个变量的值时,另一个也跟着发生变化。5.php中变量有哪些基本数据类型?php支持8种原始数据类型。包括:四种标量类型(布尔型boolean,整型interger,浮点型float/double,字符串string)两种复合类型(数组array,对象object)两种特殊类型(资源resource,NULL)6.其它类型转换为boolean类型时,哪些被认为是false?布尔值false,整型值0,浮点型值0.0,空白字符串,字符串'0',空数组,空对象,特殊数据类型NULL,没有设定的变量。empty()函数在哪些情况下返回true?布尔值false,整型值0,浮点型值0.0,空白字符串,字符串'0',array()空数组,特殊数据类型NULL,没有任何属性的对象,没有赋值的变量。7.如果定义了一个变量$a,但是没有赋初始值,那么$a==0吗?$a==false吗?$a==''吗?$a==NULL吗?$a===NULL吗?empty($b)==true吗?此时如果输出$a++是多少?null如果输出++$a又是多少?8.字符串怎么转成整数,有几种方法?怎么实现?强制类型转换:(整型)字符串变量名;直接转换:settype(字符串变量,整型);intval(字符串变量);9.标量数据和数组的最大区别是什么?一个标量只能存放一个数据,而数组可以存放多个数据。10.常量如何定义?如何检测一个常量是否被定义?常量的值只能是哪些数据类型?define(),defined()常量的值只能是四种标量类型的数据。11.常量分为系统内置常量和自定义常量。请说出最常见的几个系统内置常量?__FILE__,__LINE__,PHP_OS,PHP_VERSION12.如果定义了两个相同的常量,前者和后者哪个起作用?前者起作用,因为常量一旦定义就不能被重新定义或者取消定义。13.常量和变量有哪些区别?1)常量前没有$符号;2)常量只能通过define()定义,而不能通过赋值语句定义;3)常量可以在任何地方定义和访问,而变量定义和访问有固定的规则;4)常量一旦定义就不能被重新定义或者取消定义,而变量而通过赋值方式重新定义;5)常量的值只能是标量数据,而变量的数据库类型有8中原始数据类型。14.PHP中常用的几个预定义的全局数组变量是哪些?有9大预定义的内置数组变量:$_POST,$_GET,$_REQUEST,$_SESSION,$_COOKIE,$_FILES,$_SERVER,$_ENV,$GLOBALS15.在实际开发中,常量最常用于哪些地方?1)连接数据库的信息2)站点的部分路径3)网站的公共信息16.函数的优越性有哪些?提高程序的可维护性、可重用性、可开发效率提高软件的可靠性17.如何定义一个函数?函数名区分大小写吗?1)使用function关键字;2)以字母或者下划线开头,而不能以数字开头;3)不区分大小写;4)不可以使用已经声明过的或者系统自建的函数名称。18.什么是变量的能见度或者说是变量作用域?就是变量在程序中的可作用范围。根据变量的能见度,变量分为局部变量和全局变量。19.什么是局部变量和全局变量?函数内是否可以直接调用全局变量?局部变量是函数内部定义的变量,其作用域是所在的函数。全局变量是定义在所有函数以外的变量,其作用域是整个php文件。全局变量可以使用$GLOBALS['var']来调用。20.global关键词如何使用?预定义的全局变量数组$GLOBALS如何使用?global方法名21.什么是静态变量?在函数内使用static来声明的变量叫做静态变量。22.php中函数传递参数的方式有哪些?两者有什么区别?按值传递和按地址传递(或按引用传递)(1)按值传递:传递后的变量会被改变,但不影响原本的变量值。(2)按地址传递:使用&符号,函数体做的修改,直接影响到函数体外部的该变量的值。23.什么是递归函数?如何进行递归调用?递归函数其实就是调用自身的函数,但是必须满足以下两个条件:1)在每一次调用自身时,必须是更接近于最终结果;2)必须有一个确定的递归终止条件,不会造成死循环。24.判断一个函数是否存在?function_exists(string$function_name)如果存在,返回true,不存在则返回false。25.func()和@func()之间有什么区别?第二个函数调用失败不会报错26.include()和require()函数的用法和区别是什么?include_once()和require_once()呢?27.说出前置++和后置++的区别?前置++是先将变量增加1,然后在将值赋值给原来的变量;后置++是先返回变量的当前值,然后再将变量的当前值增加1.28.字符串运算符“.”与算术运算符“+”有什么区别?当“a”“b”之间使用.时认为是连字符。如果两者间是+的时候php会认为是一次运算。1)如果+号两边的字符串是数字组成的,那么会将字符串自动转为整型;2)如果+号两边是纯粹的字母,那么会输出0;3)如果+号两边的字符串是以数字开头的,那么会截取字符串开头的数字,然后进行运算。29.什么是三目(或三元)运算符?根据一个表达式的结果在另两个表达式中选择一个。30.控制流程语句有哪些?1:三种程序结构顺序结构、选择结构、循环结构2:分支:if/esle/esleif/switch/case/default3:switch需要注意的:case子句中的常量可以是整型、字符串型常量、或者常量表达式,不允许是变量。同一个switch子句中,case的值不能相同,否则只能取到首次出现case中的值。4:循环forwhiledo...whiledo...while后面必须加入分号结尾。while和do...while的区别5:break和continue的区别。break可以终止循环。continue没有break强大,只能终止本次循环而进入到下一次循环中。31.数组的概念是什么?数组根据索引分为哪两种,如何区分?数组的赋值方式有哪两种?数组是一个可以存储一组或一系列数值的变量(复合型变量)索引数组(索引值为数字,以0开始)和关联数组(以字符串作为索引值)数组的声明方式主要有两种。1.通过array()函数声明数组;2.直接为数组元素赋值,不需要调用array()函数。数组的下标如果是等价于整数的字符串值(但不能以0开头),则会被当作整数对待。32.数组如何遍历?①for循环②foreach循环,用法如下:foreach($arras$key=$value){}或者{foreachkey=keyitem=itemform=$arr}{/foreach}③listeach和while配合起来循环33.foeach数组的时候指针是如何指向的?list()/each()/while()循环数组的时候指针如何指向的呢?当foreach开始执行的时候,数组内部的指针会自动指向第一个单元。而each()一个数组后,数组指针将停留在数组中的下一个单元或者碰到数组结尾时停留在最后一个单元。如果要再次使用each()遍历数组,必须要使用reset().reset()将指针倒回第一个单元并返回第一个数组单元的值。34.如何计算数组长度(或者说计算数组中所有元素的个数)?字符串怎么取长度?count(数组名)--计算数组中的元素个数。字符串:strlen()、mb_strlen();35.数组中相关的常用函数有哪些?1)count--计算数组中的单元数目或对象中的属性个数2)in_array—检查数组中是否存在某个值。3)array_merge将一个或多个数组的单元合并起来,或是一个数组中的值附加在前一个数组的后面。4)数组与字符串之间的转换(1)explode用分隔字符来分隔一个字符串。(2)implode用连接符将数组中的每个单元连接为一个字符串。5)sort—对数组按照值从低到高排序。36.数组合并函数array_merge()和数组加法运算$arr+$arr2的区别是什么?使用array_merge(),如果数组的键名相同,那么后面的值将覆盖前者;如果是数字索引数组合并,后者附加到前者后面。使用数组加法运算,是将后来的具有相同键名的元素舍弃。37.字符串定义的时候单引号和双引号有什么区别?单引号只是输出引号内的内容;双引号输出引号内函数的具体值39.按照功能分类说说都有哪些字符串处理函数?这些函数的作用是什么?A.字符串输出函数(1)echo是一个语言结构,而不是一个真正的函数。(2)print($a)输出字符串。若成功则返回1,失败返回0(3)print_r($a)可以输出数组,输出成功时返回true(4)var_dump($a)能输出类型、长度、值B.去除字符串首尾空格的函数:trimltrimrtrim(别名:chop)C.转义字符串函数:addslashes()D.获取字符串长度的函数:strlen()E.截取字符串长度的的函数:substr()F.检索字符串函数:strstr(),strpos()G.替换字符串函数:str_replace()41.页面字符出现乱码,怎么解决?1.首先考虑当前文件是不是设置了字符集。查看是不是meta标签中写了charset,如果是php页面还可以看看是不是在header()函数中指定了charset;例如:metahttp-equiv=Content-Typecontent=text/html;charset=utf-8/header(“content-type:text/html;charset=utf-8”);2.如果设置了字符集(也就是charset),那么判断当前文件保存的编码格式是否跟页面设置的字符集保持一致,两者必须保持统一;3.如果涉及到从数据库提取数据,那么判断数据库查询时的字符集是否跟当前页面设置的字符集一致,两者必须统一,例如:mysql_query(“setnamesutf8”)。43.如果想过滤掉某个字符串中所有的html标记使用哪个函数?44.preg_replace()和str_ireplace()两个函数在使用上有什么不同?preg_split()和split()函数如何使用?45.获取当前时间戳的函数主要有哪些?用PHP打印出今天的时间,格式是2010-12-1022:21:21?用PHP打印出前一天的时间格式是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());$unix_time=strtotime(2009-9-210:30:25);//变成unix时间戳echodate(Y-m-dH:i:s,$unix_time);//格式化为正常时间格式46.在url中用get传值的时候,若中文出现乱码,应该用哪个函数对中文进行编码?用户在网站表单提交数据的时候,为了防止脚本攻击,php端接收数据的时候,应该如何处理?使用urlencode()对中文进行编码,使用urldecode()来解码。使用htmlspecialchars($_POST[''])来过滤表单传参就可以避免脚本攻击。47.连接数据库操作的步骤是什么?每一步的返回值是什么数据类型?尤其是mysql_query()返回什么数据类型?mysql_connect('','','');
本文标题:php综合复习题大全-100题
链接地址:https://www.777doc.com/doc-5841509 .html