php笔试题及答案
- 格式:docx
- 大小:35.07 KB
- 文档页数:6
T1
一、填空题
1.PHP是用什么语言编写的?
:脚本语言
2. LAMP的全称是?
:LINUX 、APACHE、MYSQL、PHP
3. PHP的三种注释方式?
:#、//、/**/
4. PHP使用什么符号定义变量?
:$
二、简答题
1. 请列出PHP的8种数据类型。?
:整型、浮点型、字符串、数组、逻辑、对象、NULL、资源型
:资源RESOURCE是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。
2. 写出如下程序的输出结果?
$TEST = ‘AAAAAA’;
$ABC = & $TEST;
UNSET($TEST);
ECHO $ABC;
?>
:AAAAAA
3.
4.$I=2,编程实现判断$I是否为整型,是则输出$I,不是则输出“非整型变量”?
$L=2
IF(IS_INT($L)){
ECHO $L;
}ELSE{
ECHO “非整型变量”;
}
IS_ARRA Y IS_BOOL I S_CALLABLE IS_DOUBLE IS_FLOA T IS_ALONG
IS_NUMBERIC IS_OBJECT IS_RESOURCE IS_STRING
T2
PHP基础部分
1. 以下PHP代码的输出结果?
$I=10;
$N = $I++;
ECHO $N, $I++, ++$I
:10,11,13
2. INCLUDE与REQUIRE的区别?
:REQUIRE 的使用方法如REQUIRE("MYREQUIREFILE.PHP"); 。这个函数通常放在PHP 程序的最前面,PHP 程序在执行前,就会先读入REQUIRE 所指定引入的文件,使它变成PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。INCLUDE 使用方法如INCLUDE("MYINCLUDEFILE.PHP"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到INCLUDE 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区
别在于错误处理的方式不一样。
REQUIRE一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误INCLUDE一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。
3. 以下代码,是判断字符串中是否存在#符号, 错误之处在于?
IF ( STRPOS($STR, “#”)) { … }
: 如果#在字符串的首位那就是返回0,PHP会将0自动转换成FALSE进行判断,因此错误,正确写法是:IF ( STRPOS($STR, “#”) !== FALSE) { … }
4. 程序代码使用UTF-编码,以下代码输出结果是什么?STRLEN函数是计算字符串的字节数还是字符数?$STR = “您好HELLO”;ECHO STRLEN($STR);
:UTF-8:对英文使用8位(1个字节),对中文使用24位(3个字节)来编码,对于英文较多的论坛使用UTF-8比较节省空间
GBK:使用双字节编码,不论中英文字符,为了区分中文,将其最高位定义为1
STRLEN: 返回给定的字符串STRING的长度,计算的是字节数
5. 什么是时间戳? 时间戳能代表的最小年份和最大年份是多少?
:时间戳是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数;时间戳能代表的最小年份是1970,最大年份是2038年INT TIME ( VOID )返回自从 UNIX 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
6. PHP.INI配置文件中MAGIC_QUOTES_GPC, MAGIC_QUOTES_RUNTIME的作用是什么?应该开启还是关闭?
:PHP MAGIC_QUO TES_GPC=ON的情况:我们可以不对输入和输出数据库的字符串数据作ADDSLASHES()和STRIPSLASHES()的操作,数据也会正常显示。你对输入的数据作了ADDSLASHES()处理,那么在输出的时候就必须使用STRIPSLASHES()去掉多余的反斜杠。PHP
MAGIC_QUOTES_GPC=OFF的情况:使用ADDSLASHES()对输入数据进行处理,但并不需要使用STRIPSLASHES()格式化输出,因为ADDSLASHES()并未将反斜杠一起写入数据库,只是帮助MYSQL
完成了SQL语句的执行。
MAGIC_QUOTES_RUNTIME 转义字符:当你的数据中有一些 \ ”‘这样的字符要写入到数据库里面,又想不被过滤掉的时候,它就很有用,会在这些字符前加上\
7. 现有一个文本体积大约2G, 计算机内存只有1G, 需要使用PHP对数据进行分析,如何读取如此体积的文件?分行读取,FOPEN、FREAD当然还可以使用FSEEK
FOPEN() 将FILENAME指定的名字资源绑定到一个流上。
STRING FREAD ( RESOURCE $HANDLE , INT $LENGTH ):FREAD() 从文件指针HANDLE 读取最多LENGTH 个字节。
HANDLE:文件系统指针,是典型地由 FOPEN() 创建的 RESOURCE(资源)。
8. PHP的序列化各反序列化,有何用途?
序列SERIALIZE是为了产生一个可存储的值,便于存储除RESOURCE类型的所有数据,反序列UNSERIALIZE即将序列的数据还原为原来的值
9. PHP的魔术方式包含哪些(越多越好)?在何情况下被自动调用?
以下为总结的在使用类时可用的魔术方法,魔术方法会在某种待定情况下被自动调用,但前提是该方法被定义。有些方法不一定要定义在类中,还可以写在程序中作为一个函数。
__CONSTRUCT() 构造函数,创建对象时自动调用
__DESTRUCT() 析构函数,不需要创建
__CLONE() 克隆函数,调用CLONE方法时自动调用
__SET() 当程序试图写入一个不存在或不可见的成员变量时自动调用。该函数在类中定义时必须有两个参数:变量称和变量值。
__GET() 当程序调用一个未定义或不可见的成员变量时自动调用__GET()来读取变量值。定义时必有有一个参数:变量名
__CALL() 当程度试图调用不存在或不可见的成员方法时,自动调用__CALL()来存储方法名及其参数。该方法包含两个参数:方法名和方法参数。其中方法参数以数组形式存在。
__SLEEP() 使用SERIALIZE()实现序列化对象时,先执行该方法,清除对象并返回一个该对象中所有变量的数组。
__WAKEUP() 使用UNSERIALIZE()还原一个被序列化的对象时,先执行该方法,恢复在序列化中可能丢失的数据库连接及相关工作
__TOSTRING() 当使用ECHO或PRINT输出对象时,将对象转化为字符串
__AUT OLOAD() 调用未被实例化的类时,自动调用,在指定路径下查找和该类名称相同的文件。
10. ARRA Y ACCESS接口的作用是什么?
让对象使用起来像一个PHP数组,而不用使用对象操作符->直接使用数组符号[]就可