mysql sql设置数组变量及使用 mysql定义数组_PHP

PHP工程师笔试主观题15例

1. 数组的概念是什么?数组根据索引分为哪两种,如何区分?数组的赋值方式有哪两种?

数组是一个可以存储一组或一系列数值的变量(复合型变量)

索引数组(索引值为数字,以0开始)和关联数组(以字符串作为索引值)

数组的声明方式主要有两种。

1.通过array()函数声明数组;

可以通过key=>value的方式分别定义索引和值,也可以不定义数组的索引下标,只给出数组的元素值。

2.直接为数组元素赋值,不需要调用array()函数。例如:   $arr[0] = 1;   $arr[1] = 2;  特别注意:

数组的下标如果是等价于整数的字符串值(但不能以0开头),则会被当作整数对待。

例如: $array[3] 与  $array['3'] 引用的是相同的一个元素,而 $array['03'] 引用的则就是另外的一个元素了。

2.数组如何遍历?

①for循环

$arr[] = 123;

$arr[] = 456;

$arr[] = 789;

for($i=0; $i

echo $arr[$i]."
";

}

②foreach循环  ,这是最常用的遍历方式。用法如下:foreach($arr as $key=>$value){}

③list each 和while 配合起来循环

3. foreach数组的时候指针是如何指向的?list()/each()/while()循环数组的时候指针如何指向的呢?

当foreach开始执行的时候,数组内部的指针会自动指向第一个单元。因为foreach所操作的是指定数组的拷贝,而不是该数组本身。

而each()一个数组后,数组指针将停留在数组中的下一个单元或者碰到数组结尾时停留在最后一个单元。如果要再次使用each()遍历数组,必须要使用reset().  reset()将数组的内部指针倒回到第一个单元并返回第一个数组单元的值。

4. 如何计算数组长度(或者说计算数组中所有元素的个数)?字符串怎么取长度?  count() -- 计算数组中的元素个数。

可以使用count(数组名)或者count(数组名,1),如果有第二个参数,并且是数字1,则表示递归统计数组元素的个数。

如果第二个参数是数字0,则等同于只有一个参数的count()函数。

sizeof() -- count() 的别名

字符串:strlen()、mb_strlen();

5. 数组中相关的常用函数有哪些?

1) count --(sizeof别名)— 计算数组中的单元数目或对象中的属性个数

例如:int count ( mixed $var [, int $mode ] )  $var 通常都是数组类型,任何其它类型都只有一个单元。 $mode 默认值为0. 1为开启递归地对数组计数

2) in_array ( mixed $needle , array $haystack [, bool $strict ] ) — 检查数组中是否存在某个值。

如果 needle 是字符串,则比较是区分大小写的。

如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。

3) array_merge(array $array1 [, array $array2 [, array $... ]] ) 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

特别注意:如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引

4) 数组与字符串之间的转换

(1)explode ( string $separator , string $string [, int $limit ] )  使用一个分隔字符来分隔一个字符串。

(2)implode ( string $glue , array $arr )  使用一个连接符将数组中的每个单元连接为一个字符串。

join 为 implode 的别名

5) sort(array &$array [, int $sort_flags ]) — 对数组按照值排序,当本函数结束时数组单元将被从最低到最高重新安排。

6、 数组合并函数array_merge()和数组加法运算$arr + $arr2 的区别是什么?

使用array_merge(),如果是关联数组合并,如果数组的键名相同,那么后面的值将覆盖前者;如果是数字索引数组合并,则不覆盖,而是后者附加到前者后面。

使用数组加法运算,与array_merge()不同,加法运算不管是关联数组还是数字索引数组,都是将相同键名的的值舍弃,也就是只保留首次出现该键名的元素,后来的具有相同键名的元素都不会被加进来。

7.页面字符出现乱码,怎么解决?

1.首先考虑当前文件是不是设置了字符集。查看是不是meta标签中写了charset,如果是php页面还可以看看是不是 在header()函数中指定了charset;

例如:    header(“content-type、text/html;charset=utf-8”);

2.如果设置了字符集(也就是charset),那么判断当前文件保存的编码格式是否跟页面设置的字符集保持一致,两者必须保持统一;

3.如果涉及到从数据库提取数据,那么判断数据库查询时的字符集是否跟当前页面设置的字符集一致,两者必须统一, 例如:mysql_query(“set names utf8”)。

8. 获取当前时间戳的函数主要有哪些?

用PHP打印出今天的时间,格式是2010-12-10 22:21:21?

用PHP打印出前一天的时间格式是2010-12-10 22:21:21?

如何把2010-12-25 10、30、25变成unix时间戳?

echo date ("Y-m-d H、i、s" ,strtotime(‘-1,days’));

date('Y-m-d H、i、s',time());

mktime(小时,分钟,秒,月,天,年);//将时间信息转化为时间戳

$unix_time = strtotime("2009-9-2 10、30、25");//变成unix时间戳

echo date("Y-m-d H、i、s",$unix_time);//格式化为正常时间格式

9. 连接数据库操作的步骤是什么?每一步的返回值是什么数据类型?尤其是mysql_query()返回什么数据类型?

连接数据库操作的步骤:

① 建立与MySQL服务器的连接

② 设置字符集;mysql_query("set names 'gb2312'")

③ 选择要操作的数据库

④ 创建结果集

⑤ 将结果集中的一行记录读入数组中

⑥ 在网页上输出数组元素的值

$conn=mysql_connect("servername","username","passward");//打开连接

mysql_select_db("guestbook",$conn);//连接到指定的数据库

$result=mysql_query("Select * from guestbook",$conn);//创建结果集

10、设计网站的过程和步骤是什么?

①可行性分析 ②功能需求分析 ③数据库设计 ④页面设计 ⑤后台程序开发 ⑥测试  ⑦发布

11、解释什么是session(会话)?并说明如下函数的作用

session在Web开发语境下的语义又有了新的扩展,其含义是指:一类用来在客户端和服务器之间保持状态的解决方案 。有时候session也用来指这种解决方案的存储结构,如“把xxx保存在session里”。

(1)session_start()

session_start() 会创建新会话或者重用现有会话。

(2)sessioin_destroy()

session_destroy() 销毁当前会话中的全部数据, 但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。

如果需要再次使用会话变量, 必须重新调用 session_start() 函数。

(3)session_unset()

session_unset() 会释放当前会话注册的所有会话变量。

12、简述以下函数的作用。

Mysql_affected_rows( )

返回前一次MySQL操作所影响的记录行数

mysql_error( )

返回上一个MySQL操作产生的文本错误信息

mysql_num_rows( ) 返回结果集中行的数目 file_exists( )

检查文件或目录是否存在

unlink( ) 删除文件

move_uploaded_file( ) 将目标文件移动到指定位置 die( )

输出一条消息,并退出当前脚本

in_array( )

搜索数组中是否存在指定的值

explode( )

把字符串打散为数组

implode( )

数组元素组合成字符串

var_dump( )

打印显示一个变量的内容与结构,以及类型的信息

print_r( )

打印关于变量的易于理解的信息

13、WampServer这个软件集成了哪些工具,分别介绍这些工具在网站开发中的作用,有端口号的请说明默认端口号

集成了Apache,PHP,MySQL。

APache:web服务器软件,可通过简单的API扩充,将解释器编译到服务器中。默认端口号80

PHP:是一种通用开源脚本语言,用于web开发。

MySQL:是一种关联数据库管理系统。默认端口号3306

14、简述索引数组和关联数组的区别及遍历方法。

索引数组是以数字为下标的的数组。可以采用for 循环来遍历。

关联数组是键值对数组采用foreach循环来遍历。

15、简述include( )函数和require( )函数的区别。

include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。

PHP程序执行到require()时,只会读取一次档案,故常放在程序开头,档案引入后PHP会将网页档重新编译,让引入档成为原先网页的一部分;若文件不存在,会报错然后停止运行。

PHP程序执行到include()时,每次皆会读取档案,故常用于流程控制区域,如条件判断或者循环中;若文件不存在,则给出警告但是脚本继续运行。

推荐使用require_once()和include_once(),可以检测文件是否有重复包含。