本文主要和大家分享php基础问答知识小结,希望能帮助到大家。
01.输出为Mozilla/4.0(compatible;MSIE5.01;WindowNT5.0)时,可能的输出语句是:
A.$_SERVER['HTTP_USER_AGENT_TYPE'];
B.$_SERVER['HTTP_USER_AGENT'];
C.$_SERVER['USER_AGENT'];
D.$_SERVER['AGENT'];
02.下面功能PHP无法实现的是:
A.服务器端脚本运行
B.命令行脚本运行
C.客户端图形界面(GUI)程序
D.浏览器端执行DOM操作
03.下面说法不正确的是:
A.PHP有四种标量类型:布尔型(boolean),整型(integer),浮点型(float),字符串(string)
B.浮点型(float)与双精度型(double)是同一种类型
C.复合类型包括:数组(array),对象(object),资源(resource)
D.伪类型:混合型(mixed),数字型(number),回调(callback)
04.执行下面的代码后,
Echo function_exists('print');
?>
1. Function_exists判断函数是否存在,返回true或者false
2. Print本身不是函数,而是一种语言结构
3. Echofalse 什么都没有
得到的输出是:
A.空
B.true
C.false
D.FALSE
05.下面不是PHP语法的组成部分的函数是:
A.array
B.eval
C.each
D.list
Echoprint
06.执行下面的代码的结果是什么?
$bool=TRUE;
Echo gettype($bool);
Echo is_string($bool);
?>
A.boolean
B.boolean0
C.booleanFALSE
D.booleanfalse
*07.写出下面代码执行的结果:
$a=12;
$b=012;
$c=0x12;
Echo $a,"\n",$b,"\n",$c;
?>
12\n10\n18
08.下面代码的执行结果是什么?
Echo 1+2+"3+4+5";
?>
A.0
B.3
C.6
D."33+4+5";
09.下面代码加入下面那个函数后返回TRUE:
Return ?=='A';
A.ord(65) 根据字符,返回ascii码值
B.chr(65)根据ascii码值,返回对应的字符 A==65 a==97
C.65+''
D.''+65
10.下面代码的输出正确的是:
$a=array(1=>5,5=>8,22,2=>'8',81);
Echo $a[7];//81
Echo $a[6];//22
Echo $a[3];
?>
A.空2281 B.空8122 C.8122空 D.空空空
11.下面代码的输出结果:
$a[bar]='hello';
Echo $a[bar];//hello
echo $a['bar'];//hello
?>
A.hello B.空空 C.报错 D.hellohello
*12.写出下面代码的结果:
Echo 1>>0; 0001
Echo 2>>1; 0010 -> 0001
Echo 3<<2; 0011 -> 1100
?>
A.012 B.106 C.1112D.123
13.下面对于echo,print的描述正确的是:
A.echo,print都可以打印多个参数
B.print可以打印多个参数,echo不可以
C.echo可以打印多个参数,print不可以
D.echo,print都不可以打印多个参数
14.对于下面的代码
$fruits=array('strawberry'=>'red','banana'=>'yellow');
?>
能够正确得到结果'yellow'的代码是:
A.echo"A banana is {$fruits['banana']}";
B.echo"A banana is $fruits['banana']";
C.echo"A banana is {$fruits[banana]}";
D.echo"A banana is $fruits[banana]";
15.下面代码执行完成后的结果是什么?
Function change(){
Static$i=0;
$i++;
Return$i;
}
Printchange();
Printchange();
?>
12
16.以下代码的执行后是,$result值为:
$srcArray=array(‘a’,’b’,’c’,’d’);
$randValue=array_rand($srcArray);
$result=is_string($randValue);
?>
1. array_rand返回什么?
2. Is_string()返回值
A、a
B、false
C、trueb
D、b
E、c
17.输出的是?
A、3
B、false
C、null
D、1
E、0
18.以下代码的执行后是,$result值为:
$a=’01’;
$result=1;
If(in_array($a,array(‘1’))){
$result=2;
}elseif($a==’1’){
$result=3;
}elseif($a==’01’){
$result=4;
}else{
$result=5;
}
?>
A、1
B、2
C、3
D、4
E、5
19.php函数名是否区分大小写?
A、不区分
B、区分
20.以下代码的执行后是,$result值为:
$x=””;
$result=is_null($x);
?>
A、null
B、true
C、false
D、1
21.哪种OOP设置模式能让类在整个脚本里只实例化一次?
A、MVC
B、代理模式
C、状态模式
D、抽象工厂模式
E、单件模式
22.借助继承,我们可以创建其他类的派生类。那么在PHP中,子类最多可以继承几个父类?
A、1个
B、2个
C、取决于系统资源
D、3个
E、想要几个有几个
23.以下哪种错误类型无法被自定义的错误处理器捕捉到?(双选)set_error_handler
A、E_WARNING
B、E_USER_ERROR
C、E_PARSE
D、E_NOTICE
24.执行以下代码,输出结果是
Abstract class a{
Function __construct(){
Echo “a”;
}
}
$a=new a();
?>
A、a
B、一个错误警告
C、一个致命性的报错
25.执行以下代码,输入结果是
Class a{
Function __construct(){
Echo “Echo Classa Something”;
}
}
Class b extends a{
Function __construct(){
Echo “Echo Classb Something”;
}
}
$a=new b();
?>
A、echoclassasomethingechoclassbsomething
B、echoclassbsomethingechoclassasomething
C、echoclassassomething
D、echo class b something
26.下面哪个选项没有将john添加到users数组中?2分
(A) $users[] = 'john';
(B) array_push($users, 'john');
(C) $users||= 'john';
(D) array_unshift($users, 'john');
27.在PHP中,'+'操作符的功能不包括 2分
A.字符串连接
B.数组数据合并 array(0=>1,1=>2)+array(2=>3,3=>4)
C.变量数据相加
28.下面哪个表达式不能将两个字符串$s1和$s2串联成一个单独的字符串?( )
A.$s1+$s2 B.“{$s1}{$s2}” C.$s1.$s2
D. implode(‘’,array($s1,$s2)) E.以上所有的方法都能实现
29.下面的脚本运行以后,$array数组所包含的值是什么?( )
$array = array(‘1’,’1’);
foreach($array as $k=>$v){
$v = 2;
}
A.array(‘2’,’2’) B.array(‘1’,’1’) C.array(2,2) D.array(Null,Null)
30.array_shift()函数的作用是?
A 在数组中新增一个元素
B 移除数组中的一个元素
C 交换一个数组的key和value array_flip()
D 清除一个数组
填空
1、执行程序段将输出___0_。
*2、以Apache模块的方式安装PHP,在文件httpd.conf中首先要用语句__ LoadModule php5_module"F:/wamp/php-5.2.6-win32/php5apache2_2.dll"__动态装载PHP模块,然后再用语句__ AddTypeapplication/x-httpd-php .php__使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
3、类的属性可以序列化后保存到session中,从而以后可以恢复整个类,这要用到的函数是_serialize___。
4、__debug_backtrace___函数能返回脚本里的任意行中调用的函数的名称。该函数同时还经常被用在调试中,用来判断错误是如何发生的。
5、$str="cd";
$$str="abcde"; $cd=”abcde”
$$str.="ok"; $cd .= “ok”;
echo$cd; echo $cd;
?>
该段代码输出是___abcdeok____
读程题
1、(5分)请指出以下代码的错误之处(圈出来并加以改正)
function baz($y,$a) {
//$x =new Array();
$x[‘sales’] = 60;
$x[‘profit’] = 20;
foreach($xas $key =>$value) {
echo$key + “ ” + $value + “
”;
}
}
2、写出以下程序的输出结果 (1分)
$b=201;
$c=40;
$a=$b>$c?4:5;
echo $a;
4
3、下面的程序会输出什么 1分)
$num = 10;
function multiply(){
$num = $num * 10;
}
multiply();
echo $num;
10
4、请写出下列PHP代码的执行结果 6分
$var1 = 5;
$var2 = 10;
functionfoo(&$my_var){
global$var1;
$var1 +=2;
$var2 = 4;
$my_var +=3;
return$var2;
}
$my_var = 5;
echofoo($my_var) ."\n";//4
echo $my_var."\n";//8
echo $var1."\n";//7
echo $var2."\n";//10
$bar = 'foo';
$my_var = 10;
echo$bar($my_var) ."\n";//4
5、写出下列代码的输出结果:
function myfunc($argument){
echo $argunment + 10;
}
$variable =10;
echo “myfunc($variable)=”.myfunc($variable);
20myfunc(10)=
6、写出如下程序的输出结果(5分)
$test='aaaaaa';
$abc=&$test;
unset($test);
echo $abc;//aaaaaa
7、写出程序运行的结果
$a=0;
$b=0;
If($a=3||$b=3){
$a++; //true++
$b++; //0++
}
Echo$a.”,”.$b; //1,1
$a=0;
$b=0;
If($a=(3|$b=3)){
$a++;//3++
$b++;//3++
}
Echo$a.”,”.$b;//4,4
结果:1._______1,1__________,2._________4,4_____________
8、
$data = array(‘a’, ‘b’, ‘c’);
foreach($data as $key=>$val) {
$val = &$data[$key];
}
?>
问题1:程序执行时,每一次循环结束后变量$data的值是什么?请解释。
问题2:程序执行完后,变量$data的值是什么?请解释。
问答题
1、实现中文字串截取无乱码的方法。(3分)
mb_substr()
2、输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100 --- 192.168.1.150之间(5分)。
Ip2long(“192.168.1.100”) ip2long(‘192.168.1.150’)
3、不断在文件hello.txt头部写入一行“Hello World”字符串,要求代码完整(10分)
$str = File_get_contents(“hello.txt”);
$str = “helloworld”.$str;
File_put_contents(“hello.txt”,$str);
4、请列出3种PHP数组循环操作的语法,并注明每种循环的优缺点 5分
For 只能循环下标连续的索引数组
Foreach 可以循环所有数组
While 与for相似
While(list($key,$val)=each($arr)) 可读性较差,效率较低
5、求两个日期的差数,例如2007-2-5~2007-3-6的日期差数(5分)
(Strtotime(‘2007-3-6’)-Strtotime(“2007-2-5”))/(3600*24)
6、请将2维数组按照name的长度进行重新排序,按照顺序将id赋值(从1开始)。(15分)
$array = array(
array(‘id’ => 0,‘name’ => ‘123’),
array(‘id’ => 0,‘name’ => ‘12345’),
array(‘id’ => 0,‘name’ => ‘1234’),
array(‘id’ => 0,‘name’ => ‘123abcd’),
array(‘id’ => 0,‘name’ => ‘123456’),
);
)
for($j=0,$c=count($array);$j<$c;$j++){
for($i=0;$i<$c-1-$j;$i++){
if(strlen($array[$i]['name'])>strlen($array[$i+1]['name'])){
$tmp= $array[$i];
$array[$i]= $array[$i+1];
$array[$i+1]= $tmp;
}
}
$array[$c-1-$j]['id']= $c-$j;
}
$arr = array();
foreach($Tarray as $k=>$v)
{
$arr[$k] = strlen($v['name']);
}
natsort($arr);
$arr1 = array();
$i = 0;
foreach($arr as $k=>$v)
{
$arr1[$i]['id'] = $v;
$arr1[$i]['name'] =$Tarray[$k]['name'];
$i++;
}
8、在PHP中error_reporting这个函数有什么作用? (1分)
改变错误级别
9、简述如何得到当前执行脚本路径,包括所得到参数。(2分)
$_SERVER[‘REQUEST_URI’]
10、mysql_fetch_row()和mysql_fetch_array之间有什么区别? (1分)
Mysql_fetch_row()返回索引数组
Mysql_fetch_array()返回索引加关联的数组
11、GD库是做什么用的?(1分)
动态的生成图像
12、请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
传值:只会将值传递给一个变量
传地址:会将地址传递给一个变量,此时两个变量同时指向同一个地址,一个发生改变,另一个也会跟着发生改变。
13、谈谈asp,php,jsp的优缺点(1分)
Asp.net优点:开发较快,B/S,C/S
Asp.net缺点:平台限制(windows-IIS),成本高
PHP优点:跨平台,开发效率高,开源
PHP缺点:不能做C/S模式的软件(例如:QQ)
JSP优点:涉及面较广(C/S,B/S),较安全
JSP缺点:不开源,不免费,成本高
14、用PHP写出显示客户端IP与服务器IP的代码1分)
$_SERVER[‘REMOTE_ADDR’]
$_SERVER[‘SERVER_ADDR’]
15、CSS里margin和paddin有什么区别?写出padding在3个参数和四个参数情况下,参数所作用的方向
Margin:1px 2px 3px
Margin:1px 2px 3px 4px
16、在开发项目中,需要上传超过8M的文件,请说明在php.ini需要修改的配置项。(10分)
upload_max_filesize upload_max_filesize
post_max_size post_max_size
17、Php是否有安全问题,如果有,请列举说明。
Sql注入,预处理
18、从PHP4.2.0开始 PHP默认配置将register_globals配置设定为off,请指出这个设定的作用和对PHP相关程序的影响。(5分)
会将参数自动接收 index.php?id=1
$id即可接收
$_SESSION[‘id’] = 1
19.apache默认使用进程管理还是线程管理?如何判断并设置最大连接数?
进程管理
20、PHP如何执行shell的两种方式
Shell_exec
``
21、写出一个函数,参数为年份和月份,输出结果为指定月的天数
Function getDays($year,$month){
Return (strtotime($year.”-”.($month+1).”-1”)-strtotime($year.”-”.$month.”-1”))/(3600*24);
}
22、用PHP写一段代码,实现不使用第3个变量,交换$a,$b的值,$a,$b的初始值自己定。
$a = array($a,$b)
$b = $a[0];
$a = $a[1]
23、面向对象中接口和抽象类的区别及应用场景
接口:是抽象类的特殊情况,不允许有属性,只允许有常量,所有的方法都是抽象方法
抽象类:不一定所有的方法都是抽象方法
相同:都不能实例化
1 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。
2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法
3 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。
相关推荐:
以上是php基础问答知识小结分享的详细内容。更多信息请关注PHP中文网其他相关文章!