## --: *上海yz公司*
## :-: **选择题**
```
1.以下代码输出的是什么?()
$s='12345';
$s[$s[2]]='3';
echo $s;
A.12345 B.12245 C.22345 D.12335 E.array
答案:D
解析:$[2]=3;
$[$[2]]=$[3]=3;
所以把下标为3的值改成3;
```
```
2.▶▶对于一个查询语句SELECT * FROM tbl1 WHERE a>1 AND b<3 ORDER BY c,
针对该查询,什么样的索引结构能是的该查询获得最佳效率?( )
A. INDEX a_b_c (a. b, c)
B. INDEX a_b (a, b)
C. INDEX a, INDEX b, INDEX c
D. INDEX a
答案:A
```
```
3.php获取html标签image的src内容
正则表达式写法如下:
$str = '';preg_match_all('//is',$str,$array);print_r($array);
php对图片的操作正则表达式详解:
//1、取整个图片代码
preg_match('/]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i',$str,$match);echo $match[0];
//2、取width
preg_match('//i',$str,$match);echo $match[1];
//3、取height
preg_match('//i',$str,$match);echo $match[1];
//4、取src
preg_match('//i',$str,$match);echo $match[1];
/*PHP正则替换图片img标记中的任意属性*/
//1、将src="/uploads/images/20100516000.jpg"
替换为src="/uploads/uc/images/20100516000.jpg")
print preg_replace('/()/i',"\${1}uc/images/\${3}",$str);echo "";
//2、将src="/uploads/images/20100516000.jpg"
替换为src="/uploads/uc/images/20100516000.jpg",并省去宽和高
print preg_replace('/(/i',"\${1} \${2}uc/images/\${3}>",$str);?>
```
```
4.下面代码的输出正确的是?()
$a=array(1=>5,5=>8,22,2=>'8',81);
echo $a[7];
echo $a[6];
echo $a[3];
A:空2281
B:空8122C
C:8122空
D:空空空
答案:C
```
```
5.PHP session扩展默认将session数据存储在哪里?()
A:SQLite Database
B:MySQL Database
C:Shared Memory
D:File System
答案:D
```
```
6.下面代码运行结果是?()
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
?>
答案:2 4 6 8
```
```
▶▶7.mysql_affected_rows()对哪个操作没有影响?()
A:SELECT
B:DELETE
C:UPDATE
D:INSERT
答案:A
解析: mysql_affected_rows中文名:取得前一次 MySQL 操作所影响的记录行数;
参 数:link_identifier;
取得一次与 link_identifier 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。
```
```
▶▶8.写出下面代码的结果()
<?php
$count = 5;
function get_count(){
static $count = 0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();
?>
答案:5 0 1
解析: php中的变量作用范围的另一个重要特性就是静态变量(static 变量)。
静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果。
因static $count,所以只在第一次调用get_count的时候对count赋值为0,第二次再进来这个函数,则不会第二次赋值。
其次就是return count++和return++count了,前者先返回,后者先++再返回。
```
```
▶▶9.下面代码的执行结果是?()
$a=array(1,"aa"=>2,3,4);
foreach($a as $key=>$val){
print_r($key=="aa"?5:$val);
}
A:1534
B:5534
C:5555
D:5234
答案:B
```
## :-: **简答题**
```
▶▶ 1.PHP猴子选大王---最优解决算法:一群猴子排成一圈,按1,2,…,n依次编号。
然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,
直到最后只剩下一只猴子为止,那只猴子就叫做大王。
要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。
$a = array(1,2,3,4,5,6,7,8,9,10);
function smonk($arr,$step){
$m = $step;
$total = 0;
while (count($arr)>1) {
$len = count($arr)+$total;
if($step>=$len){//数组重新开始,并且数组下表重新计算
while ($step>=$len) {
$step = $step - $len;
}
$arr = array_values($arr);
$total = 0;
}
//echo $arr[$step] . '<br>';
unset($arr[$step]);
$step =$step+$m;
$total ++;
}
echo isset($arr[0])?$arr[0]:$arr[1];
}
smonk($a,2);
```
```
2.请写出php变量命名规则的正则表达式。
$reg=/^\$[a-zA-Z_]\w*/;
```
```
3.array+array与array_merge()的区别。
array_merge()函数用于将一个或者多个数组的单元合并起来,返回结果为数组。
①如果合并的数组中有相同的字符串键名,则后面的值覆盖前面的值,键名不变(测试如下图1)。
②如果合并的数组中有相同的数字键名,则后面的值不覆盖前面的值,而是依次附加到后面(测试如下图1)。
③如果只有一个数组,并且该数组是数字索引的,则键名会以连续方式重新索引。(测试如下图2)
```
![](images/PDHB3OM%5B4L%60_1K%60GS96.png =794x429)
![](https://box.kancloud.cn/ca27ee08f9772efb60c1fe48009c43a2_893x400.png =894x)
```
array+array是数组的联合运算
①如果合并的数组中有相同的字符串键名,则取最先出现的值而把后面拥有相同键名的那些值“抛弃”(测试如下图)。
②如果合并的数组中有相同的数字键名,则取最先出现的值而把后面拥有相同键名的那些值“抛弃”(测试如下图)。
③如果只有一个数组,并且该数组是数字索引的,则键名会以连续方式重新索引(和array_merge()方法相同,故不做测试).
```
![](https://box.kancloud.cn/24c0878489b746345ebd363389d08fad_888x407.png)
```
4.liunx下查找文件和文件中过滤内容的命令
```
```
5.列举常见的数据库事物隔离级别及简要说明其内容
●读未提交(Read Uncommitted)
含义解释:只限制同一数据写事务禁止其他写事务。解决”更新丢失”。(一事务写时禁止其他事务写)
名称解释:可读取未提交数据所需的锁:排他写锁
●读提交(Read Committed)
含义解释:只限制同一数据写事务禁止其它读写事务。解决”脏读”,以及”更新丢失”。(一事务写时禁止其他事务读写)
名称解释:必须提交以后的数据才能被读取所需的锁:排他写锁、瞬间共享读锁
●可重复读(Repeatable Read)
含义解释:限制同一数据写事务禁止其他读写事务,读事务禁止其它写事务(允许读)。
解决”不可重复读”,以及”更新丢失”和”脏读”。(一事务写时禁止其他事务读写、一事务读时禁止其他事务写)
注意没有解决幻读,解决幻读的方法是增加范围锁(range lock)或者表锁。
名称解释:能够重复读取所需的锁:排他写锁、共享读锁
●串行化(Serializable)
含义解释:限制所有读写事务都必须串行化实行。
它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。
如果仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。
(一事务写时禁止其他事务读写、一事务读时禁止其他事务读写)
所须的锁:范围锁或表锁
下表是各隔离级别对各种异常的控制能力。
更新丢失 脏读 不可重复读 幻读
RU(读未提交) 避免
RC(读提交) 避免 避免
RR(可重复读) 避免 避免 避免
S(串行化) 避免 避免 避免 避免
```
```
6.http中几个常见的状态的状态码含义。
200 请求成功
404 找不到资源
403 没有权限
500 服务器错误
302 重定向
```
```
7.简述php-fpm或者类似fast-cgi的主要作用
百度一下,你就知道
```