PHP开发笔试题及答案(⼀)
1. echo(), print(), print_r()的区别?
echo是PHP语⾔结构, print和print_r是函数。语⾔结构没有返回值,函数可以有返回值(即便没有⽤)  。
print()只能打印出简单类型变量的值(如int,string)
print_r()可以打印出复杂类型变量的值(如数组,对象)
echo        输出⼀个或者多个字符串
2. 语句include和require的区别是什么?为避免多次包含同⼀个⽂件,可⽤(?)语句代替?
require ⽣成⼀个致命错误(E_COMPILE_ERROR),在错误发⽣后脚本会停⽌执⾏。
php网站开发是什么专业include ⽣成⼀个警告(E_WARNING),在错误发⽣后脚本会继续执⾏。
可⽤require_once()和include_once()替换。
3. 请说明php中传值与传引⽤的区别,什么时候传值,什么时候传引⽤?
按值传递:函数范围内对值的任何改变在函数外部都会被忽略;
按引⽤传递:函数范围内对值的任何改变在函数外部也能反映出这些修改。
优缺点:按值传递时,php必须复制值。特别是对于⼤型的字符串和对象来说,这将会是⼀个代价很⼤的操作。
按引⽤传递则不需要复制值,对于性能提⾼很有好处。
4. SQL查询语句如下:select * from table where (ID=10) or (ID=32) or (ID=22) or (ID=76) or (ID=13) or (ID=44),让结果按10,32,22,76,13,44的顺序检索出来,请问如些书写?
select *
from table
where id in(10,32,22,76,13,44)
order by instr(',10,32,22,76,13,44,', ','+id+',')
5. Javascript中如何检测⼀个变量是⼀个string类型?请写出函数实现String类型的两种⽅式。
String类型有两种⽣成⽅式:
(1)Var str = “hello world”;
(2)Var str2 = new String(“hello world”);
1function IsString(str){
2return (typeof str == "string" || structor == String);
3 }
4var str = "";
5 alert(IsString(1));
6 alert(IsString(str));
7 alert(IsString(new String(str)));
6. document.write和innerHTML的区别?
document.write是直接写⼊到页⾯的内容流,如果在写之前没有调⽤document.open, 浏览器会⾃动调⽤open。每次写完关闭之后重新调⽤该函数,会导致页⾯被重写。innerHTML则是DOM页⾯元素的⼀个属性,代表该元素的html内容。你可以精确到某⼀个具体的元素来进⾏更改。如果想修改document的内容,则需要修改document.documentElement.innerElement。innerHTML将内容写⼊某个DOM 节点,不会导致页⾯全部重绘innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页⾯的那⼀个部分。
7. 写⼀个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是⼀个⼀维数组。
1 <?php
2/**
3 * 排序类
5class Sort {
6/*
7    * 冒泡排序⼩到⼤
8*/
9public function bubble_sort( $array ) {
10$count = count( $array );
11if ( $count <= 0 )
12return false;
13for ( $i = 0; $i < $count; $i++ ) {
14for ( $j = 1; $j <= $count - $i - 1; $j++ ) {
15if ( $array[$j] < $array[$j - 1] ) {
16$tmp = $array[$j];
17$array[$j] = $array[$j - 1];
18$array[$j - 1] = $tmp;
19                }
20            }
21        }
22return$array;
23    }
24
25
26/**
27    * 快速排序
28*/
29public function quick_sort( $arr ) {
30$len = count( $arr );
31if ( $len <= 1 )
32return$arr;
33$key = $arr[0];
34$left_arr = $right_arr = array();
35for ( $i = 1; $i < $len; $i++ ) {
36if ( $arr[$i] <= $key )
37$left_arr[] = $arr[$i];
38else
39$right_arr[] = $arr[$i];
40        }
41$left_arr = $this->quick_sort( $left_arr );
42$right_arr = $this->quick_sort( $right_arr );
43return array_merge( $left_arr, array( $key ), $right_arr );
44    }
45
46
47/**
48    *  希尔排序
49*/
50public function shell_sort( $datas ) {
51//分组
52for ( $increment = count( $datas ) / 2; $increment > 0; $increment = $increment / 2 ) { 53//每个组内排序
54for ( $i = $increment; $i < count( $datas ); $i++ ) {
55$temp = $datas[$i];
56$j = 0;
57for ( $j = $i; $j >= $increment; $j = $j - $increment ) {
58if ( $temp < $datas[$j - $increment] ) {
59$datas[$j] = $datas[$j - $increment];
60                    } else {
61break;
62                    }
63                }
64$datas[$j] = $temp;
65            }
66        }
67return$datas;
68    }
70 ?>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。