专业编程基础技术教程

网站首页 > 基础教程 正文

华育国际暖心奉献——PHP面试题:第三回

ccvgpt 2024-10-12 13:31:39 基础教程 10 ℃

1、下面的程序输出为,为什么?

<?php

华育国际暖心奉献——PHP面试题:第三回

$num = 10;

function multiply(){

$num = $num*10;

}

multiply();

echo $num;

?>

输出结果为:10

2.写一个函数,能够遍历一个文件下面的所有文件和子文件夹。

<?php

function my_dir($dir){

$files=array();

if(@$handle=opendir($dir)){//注意这里要加一个@,不然会有warning错误提示:)

while(($file=readdir($handle))!==false){

if($file!=".." && $file!="."){//排除根目录;

if(is_dir($dir."/".$file)){//如果是子文件夹,就进行递归

$files[$file]=my_dir($dir."/".$file);

}else{//不然就将文件的名字存入数组;

$files[]=$file;

}

}

}

closedir($handle);

return $files;

}

}

//以下是测试

$q_array=my_dir('E:/115');

print_r($q_array);

?>

3、请问下题$i和$j的值为:

<?php

$i="platomix";

$j=&$i;

$i="hello,{$i}";

echo "\$i=".$i."<br>"."\$j=".$j;

//代码执行结果: $i=hello,platomix

// $j=hello,platomix

4、列举下列魔术方法的作用?

__get():

魔术方法__get()在我们尝试访问一个不存在的属性时会被调用。它接收一个参数,该参数表示访问属性的名字,并且将该属性的值返回

__set():

魔术方法在我们尝试修改一个不可访问的属性时会被调用,它接收两个参数,一个表示属性的名字,一个表示属性的值

__toString():

__toString()在我们将对象当作字符串一样使用时会被调用,它不接收任何参数。该方法允许我们定义对象的表现形式

__autoload():

__autoload()方法并不是一个魔术方法,但是这个方法非常有用。但是,对着PHP版本的更新,该函数已经不建议使用,取而代之的是spl_auto_register()函数。

5、写出一下程序的输出结果:

<?php

$count = 5;

function get_count(){

static $count = 0;

return ++$count;

}

echo "因为是全局变量(先输出后运算),输出结果为: ".$count++;

echo "<br>";

echo "先进行加法运算,然后输出,其结果为: ".get_count();

echo "<br>";

echo "1+1,(先进性加法运算,然后输出,其结果为: ".get_count();

//因为是全局变量(先输出后运算),输出结果为: 5

//先进行加法运算,然后输出,其结果为: 1

//1+1,(先进性加法运算,然后输出,其结果为: 2

6、程序代码编码为utf-8,写出下列程序输出结果:

<?php

$str = '你好world';

echo "UTF-8编码是变长编码,通常汉字占三个字节,则输出结果为:".strlen($str);

echo "<br>";

echo "在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,则输出结果为:".mb_strlen($str,'utf-8');

7、用正则表达式判断字符串是这样的组成,第一个必须是字母,后面是可以是字母、数字、下划线、并且长度至少6个以上字符。(用Javascript代码编码)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<script>

//规则:第一位是字母,只有由数字与字母组成,6位。

function check(){

var userName = document.getElementById("halou").value;

var userSpan = document.getElementById("halouId");

var reg = /^[a-z]{1}[a-z0-9A-Z_]{5,}$/;

if(reg.test(userName)){

userSpan.innerHTML="输入正确".fontcolor("green");

return true;

}else{

userSpan.innerHTML="错误,第一位是字母,只有由数字与字母下划线组成,至少6位".fontcolor("red");

return false;

}

}

</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>正则表达式</title>

</head>

<body>

请输入字符串:<input type="text" name="zifuchuan" id="halou" onblur="check()"/>

<span id="halouId"></span>

</body>

</html>

8、编写SQL语句

(1)创建一张学生表,包括学号、姓名、性别、家庭住址、联系电话信息

(2)修改学生表结构,增加学历字段在性别之后

(3)随机插入三条学生信息

根据要求完成4、5、6题目(需要修改表结构)

(4)查询出年龄小于20岁、学历为“本科”的所有学生以及信息

(5)统计所有学生的男女人数

(6)统计学生年龄在15-20、20-25、25-30三个区段的人数分别是多少

答:

(1)创建一张学生表,包括学号、姓名、性别、家庭住址、联系电话信息

create database aa character set gbk;

use aa;

create table student(

xuehao int auto_increment primary key,

xingming varchar(10),

xingbie varchar(10),

address varchar(40),

phone varchar(20)

);

(2)修改学生表结构,增加学历字段在性别之后

alter table student add xueli varchar(10) after xingbie;

mysql> alter table student add xueli varchar(10) after xingbie;

Query OK, 0 rows affected (0.48 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> desc student;

+----------+-------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+-------------+------+-----+---------+----------------+

| xuehao | int(11) | NO | PRI | NULL | auto_increment |

| xingming | varchar(10) | YES | | NULL | |

| xingbie | varchar(10) | YES | | NULL | |

| xueli | varchar(10) | YES | | NULL | |

| address | varchar(40) | YES | | NULL | |

| phone | varchar(20) | YES | | NULL | |

+----------+-------------+------+-----+---------+----------------+

(3)随机插入三条学生信息

insert into student values(' ','张三','男','博士','上海','111');

insert into student values(' ','李四','男','小学','北京','222');

insert into student values(' ','王五','女','研究生','广州','333');

mysql> select * from student;

+--------+----------+---------+-----------+---------+-------+

| xuehao | xingming | xingbie | xueli | address | phone |

+--------+----------+---------+-----------+---------+-------+

| 1 | 张三 | 男 | 博士 | 上海 | 111 |

| 2 | 李四 | 男 | 小学 | 北京 | 222 |

| 3 | 王五 | 女 | 研究生 | 广州 | 333 |

+--------+----------+---------+-----------+---------+-------+

(4)查询出年龄小于20岁、学历为“本科”的所有学生以及信息

alter table student add age varchar(10) after xingbie;

insert into student values(' ','张三','男',12,'博士','上海','111');

insert into student values(' ','李四','男',13,'小学','北京','222');

insert into student values(' ','王五','女',14,'本科','广州','333');

insert into student values(' ','你好','男',15,'博士','上海','111');

insert into student values(' ','问号','男',16,'小学','北京','222');

insert into student values(' ','大家好','女',17,'本科','广州','333');

insert into student values(' ','任命','男',12,'博士','上海','111');

insert into student values(' ','不服','男',13,'小学','北京','222');

insert into student values(' ','怎么','女',14,'本科','广州','333');

insert into student values(' ','你说','男',15,'本科','上海','111');

insert into student values(' ','啊哈','男',16,'小学','北京','222');

insert into student values(' ','家好','女',21,'本科','广州','333');

select * from student where age<20 and xueli="本科";

mysql> select * from student where age<20 and xueli="本科";

+--------+-----------+---------+------+--------+---------+-------+

| xuehao | xingming | xingbie | age | xueli | address | phone |

+--------+-----------+---------+------+--------+---------+-------+

| 6 | 王五 | 女 | 14 | 本科 | 广州 | 333 |

| 9 | 大家好 | 女 | 17 | 本科 | 广州 | 333 |

| 12 | 怎么 | 女 | 14 | 本科 | 广州 | 333 |

| 13 | 你说 | 男 | 15 | 本科 | 上海 | 111 |

+--------+-----------+---------+------+--------+---------+-------+

(5)统计所有学生的男女人数

select sum(case xingbie when '男' then 1 else 0 end) nan,sum(case xingbie when '女' then 1 else 0 end) nv

from student;

mysql> select sum(case xingbie when '男' then 1 else 0 end) nan,sum(case xingbie when '女' then 1 else 0 end) nv

-> from student;

+------+------+

| nan | nv |

+------+------+

| 10 | 5 |

+------+------+

(6)统计学生年龄在15-20、20-25、25-30三个区段的人数分别是多少

select sum(case when age>15 and age<20 then 1 else 0 end ) a,

sum(case when age>20 and age<25 then 1 else 0 end ) b ,

sum(case when age>25 and age<30 then 1 else 0 end ) c

from student;

mysql> select sum(case when age>15 and age<20 then 1 else 0 end ) a,

-> sum(case when age>20 and age<25 then 1 else 0 end ) b ,

-> sum(case when age>25 and age<30 then 1 else 0 end ) c

-> from student;

+------+------+------+

| a | b | c |

+------+------+------+

| 3 | 1 | 0 |

+------+------+------+

更多精彩内容,请关注华育国际官网和公众号

Tags:

最近发表
标签列表