您好,欢迎访问一九零五行业门户网

php基础问答知识小结分享

本文主要和大家分享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.执行下面的代码后,
    <?php
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.执行下面的代码的结果是什么?
    <?php
$bool=true;
echo gettype($bool);
echo is_string($bool);
?>
    a.boolean
    b.boolean0
    c.booleanfalse
    d.booleanfalse
*07.写出下面代码执行的结果:
    <?php
$a=12;
$b=012;
$c=0x12;
echo $a,"\n",$b,"\n",$c;
?>
    12\n10\n18
08.下面代码的执行结果是什么?
    <?php
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.下面代码的输出正确的是:
    <?php
$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.下面代码的输出结果:
    <?php
$a[bar]='hello';
echo $a[bar];//hello
echo $a['bar'];//hello
?>
    a.hello b.空空 c.报错 d.hellohello
*12.写出下面代码的结果:
    <?php
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.对于下面的代码
    <?php
$fruits=array('strawberry'=>'red','banana'=>'yellow');
    ?>
    能够正确得到结果'yellow'的代码是:
    a.echoa banana is {$fruits['banana']};
    b.echoa banana is $fruits['banana'];
    c.echoa banana is {$fruits[banana]};
    d.echoa banana is $fruits[banana];
15.下面代码执行完成后的结果是什么?
    <?php
function change(){
static$i=0;
$i++;
return$i;
}
printchange();
printchange();
?>
    12
16.以下代码的执行后是,$result值为:
    <?php
$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.<?phpecho count(‘123’)?>输出的是?
    a、3
    b、false
    c、null
    d、1
    e、0
18.以下代码的执行后是,$result值为:
    <?php
$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值为:
    <?php
$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.执行以下代码,输出结果是
    <?php
abstract class a{
function __construct(){
echo “a”;
}
}
$a=new a();
?>
    a、a
    b、一个错误警告
    c、一个致命性的报错
25.执行以下代码,输入结果是
    <?php
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、执行程序段<?php echo 8%(-2) ?>将输出___0_。
*2、以apache模块的方式安装php,在文件httpd.conf中首先要用语句__ loadmodule php5_modulef:/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 + “<br>”;
           }
              }
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、
<?php
$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基础知识总结(新手必备)
php基础与javascript操作的区别(收藏)
以上就是php基础问答知识小结分享的详细内容。
其它类似信息

推荐信息