PHP初级面试题及答案(三)

作者 : 超级管理员 本文共3596个字,预计阅读时间需要9分钟 发布时间: 2021-08-29 共71人阅读

1.详细描述如下代码片段的含义

$text = ‘快来加入我们的 !企业 社会化讨论组吧’;

Preg_replace(‘/(^|[\s\.\,\:\;]+)!([A-Za-z0-9\x80-\xff]{1,64})/e’,”’\\1!’.common_link($i d, ‘\\2’)”,$text);

2.按要求编写代码

(1)声明一个 Cat 对象,该对象有一个公共属性:name;两个行为:walk(),talk().

(2)声明一个 MyCat 对象,继承 Cat 对象。

(3)MyCat 有一个公共属性:color;

(4)实例化一个 MyCat 对象,并将 color 属性复制为‘black’;

(5)执行 MyCat 的 talk 方法,并在 talk 方法内打印出当前 MyCat 对象的 color属性值。

3.求两个日期的差数,例如 2009-3-1 ~ 2009-4-4 的日期差数.

答:(strtotime(‘2009-4-4’)-strtotime(‘2009-3-1’))/3600*24

4.请写一个函数,实现以下功能: 字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。

答:Function changestr($str){

$arr1=explode(‘_’,$str);

$arr2=array_walk($arr1,wcwords);

Return inmplode(‘’,$arr2);

}

5.写出一个正则表达式,过虑网页上的所有 JS/VBS 脚本(即把 script 标记及其内容都去掉)

答:/<script[^>].*?>.*?<\/script>/si

6.语句 include 和 require 的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?

答:require()和 include()基本上一样, 除了怎样处理失败之外,include()产生一个警告而 require()则导致一个致命错误,也就是说如果你想在丢失文件时停止处理页面用 require(),而当用 include()时,脚本会继续运行。require()无论如何都会包含文件而 include()可以有选择地包含.可以用 include_once()和 require_once()分别代替 include()和 require().

6.要求写一段程序,实现以下数组$arr1 转换成数组$arr2:

$arr1 = array (
    '0'=>array(
       'fid'=>1,
       'tid'=>1, 
       'name' =>'Name1' 
    ),
   '1'=>array(
      'fid'=>1,
      'tid'=>2,
      'name'=>'Name2'
    ),

   '2'=>array(
      'fid'=>1,
      'tid'=>5,
      'name'=>'Name3'
    ),

   '3'=>array(
      'fid'=>1,
      'tid'=>7,
      'name'=>'Name4'
   ),

   '4'=>array(
      'fid'=>3,
      'tid'=>9, 
      'name' =>'Name5'
    )

);

$arr2 = array (

    '0'=>array(
       '0'=>array(
          'tid'=>1,
          'name'=>'Name1'
        ),
       '1'=>array(
          'tid'=>2,
          'name'=>'Name2'
        ),
       '2'=>array(
          'tid'=>5,
          'name'=>'Name3'),
       '3'=>array(
           'tid'=>7,
           'name'=>'Name4')
     ),
    '1'=>array(
       '0'=>array(
         'tid'=>9,
         'name'=>'Name5')
        )
     );

答:

$arr1 = array ('0'=>array('fid'=>1,'tid'=>1, 'name'=>'Name1'),'1'=>array('fid'=>1,'tid'=>2,'name'=>'Name2'),'2'=>array('fid'=>1,'tid'=>5,'name'=>'Name3'),'3'=>array('fid'=>1,'tid'=>7,'name'=>'Name4'),'4'=>array('fid'=>3,'tid'=>9, 'name' =>'Name5' ));$arr2='';$arr3='';Foreach($arr1 as $item){$arr3[$item['fid']][]=array('tid'=>$item['tid'],'name'=>$item['name']);
}

foreach($arr3 as $value){

$arr2[]=$value;

}

7.用 javascript 写一个函数,其功能是可以删除数组中重复的元素.

答:
function myArray_Unique(Array){
   var haha=Array;
   for(var i=0;i<Array.length;i++){
     for(var j=0;j<Array.length;j++){
        temp=Array[i];
        if((i+j+1)<Array.length&&temp==Array[i+j+1])
        //如果当前元素与后一个元素相等
        haha.splice(i+j+1,1);
        //然后就移除下一个元素
        }
    }
    return haha;
}

8.表中有 A B C 三列,用 SQL 语句实现:当 A 列大于 B 列时选择 A 列否则选择 B列,当 B 列大于 C 列时选择 B 列否则选择 C 列。

答:select case when A>B then A else B end, case when B>C then B else C end From table

9.请简述项目中优化 sql 语句执行效率的方法,从哪些方面,sql 语句性能如何分析?

答:(1)选择最有效率的表名顺序

(2)where 子句中的连接顺序

(3)select 子句中避免使用‘*’

(4)用 Where 子句替换 having 子句

(5)通过内部函数提高 sql 效率

(6)避免在索引列上使用计算

(7)提高 group by 语句的效率, 可以通过将不需要的记录在 GROUP BY 之前过滤掉。

10.如果模板是用 smarty 模板。怎样用 section 语句来显示一个名为$data 的数组。比如:$data = array([0]=>array([id]=8 [name]=’name1′)[1]=>array([id]=10 [name]=’name2′)[2] => array( [id]=15 [name]=’name3′)……)写出在模板页的代码? 若用 foreach 语句又要怎样显示呢?

答:1、

<{section name=test loop=$data start=0 step=1}>

id:<{$data[test].id}><br />

name:<{$data[test].name}><br /><br />

<{sectionelse}>

数组为空

<{/section}>

2、

<{foreach from=$data item=test}>

id:<{$test.id}><br />

name:<{$test.name}><br /><br />

<{foreachelse}>

数组为空

<{/foreach}>

11.两张表 city 表和 province 表。分别为城市与省份的关系表。

city:

id City Provinceid

1 广州 1

2深圳1

3惠州1

4长沙2

5武汉3

……. 广州

province:id Province

1 广东

2 湖南

3 湖北……….

(1)写一条 sql 语句关系两个表,实现:显示城市的基本信息。?

(2)显示字段:城市 id ,城市名, 所属省份 。

如:Id(城市 id) Cityname(城市名) Privence(所属省份)。。。。。。。。。。。。。。。。。。

答:select c.id Id,c.City Cityname,d.Province from city c,province p wherec.Provinceid=p.id

(2)如果要统计每个省份有多少个城市,请用 group by 查询出来。?显示字段:省份 id ,省份名,包含多少个城市。

答:select p.id,p.Province,count(c.id) num from city c,provincep where c.Provinceid=p.id group by p.id;

11.请使用伪语言结合数据结构冒泡排序法对以下一组数据进行排序

10 2 36 14 10 25 23 85 99 45。

答:

$str='10 2 36 14 10 25 23 85 99 45';

$arr=explode(' ',$str);

$count=count($arr);

for($i=0;$i<$count;$i++){

for($j=$i+1;$j<$count;$j++){

if($arr[$j]<$arr[$i]){

$temp=$arr[$i];

$arr[$i]=$arr[$j];

$arr[$j]=$temp;

}

}

}

$str1=implode(' ',$arr);

echo$str1;

 

本站所发布的资源均来源于互联网,仅限用于研究学习,不得将软件用于商业或者非法用途,否则一切后果请用户自负!如果侵犯了您的权益请与我们联系!您必须在下载后的24个小时之内,从您的手机和电脑中彻底删除。 如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请与我们联系处理!
互利网 » PHP初级面试题及答案(三)

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整:可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

发表评论