PHP 编程基础
问题
1.选择合适的答案填入空白处
PHP 是一种______脚本语言,基于______引擎。PHP 最常被用来开发动态的______内容,此外,它同样还可被用来生成______(以及其他)文档。
A.动态,PHP,数据库,HTML
B.嵌入式,Zend,HTML,XML
C.基于Perl 的,PHP,Web,静态
D.嵌入式,Zend,Docbook 文档,MySQL
E.基于Zend 的,PHP,图像,HTML
唯一有意义的答案是B。PHP 是一种基于Zend 引擎的脚本语言,它通常被嵌入在HTML 代码中。它主要被用来开发HTML 文档,但是也可以用它来开发其他类型的文档,比如XML。
2.以下哪种标签不是PHP 起始/结束符?
A.<% %>
B. ?>
C.= ?>
D.
E.
PHP 编程中,人们不太使用<% %>和 ?>两个标签,但它们确实是合法的PHP 界定符。标签是非法的,因此正确的答案是D。记住,根据php.ini 文件中的配置不同,这当中的某些标签无法在特定的情况下使用。
3.以下代码哪个不符合PHP 语法?
A.$_10
B.${“MyVar”}
C.&$something
D.$10_somethings
E.$aVaR
PHP 变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。${“MyVar”}是一个合法的变量名,它使用的是较松散的命名约定。&$something 是对$something 的
引用。然而,变量名不能以数字为开头,$10_somethings 是非法的,因此答案是D。4.运行以下代码将显示什么?
define(myvalue, "10");
$myarray[10] = "Dog";
$myarray[] = "Human";
$myarray['myvalue'] = "Cat";
$myarray["Dog"] = "Cat";
print "The value is: ";
print $myarray[myvalue]."\n";
?>
A.The V alue is: Dog
B.The Value is: Cat
C.The Value is: Human
D.The V alue is: 10
E.Dog
注意,$myarray 的键值并没有打上引号。所以,正在访问的键不是myvalue 字符串,而是常量myvalue 的值。最终访问的是$myarray[10],值是Dog,答案是A。5.print()和echo()有什么区别?
A.print()能作为表达式的一部分,echo()不能
B.echo()能作为表达式的一部分,print()不能
C.echo()能在CLI(命令行)版本的PHP 中使用,print()不能
D.print()能在CLI(命令行)版本的PHP 中使用,echo()不能
E.没有区别:两个函数都打印文本!
尽管print()和echo()在绝大多数情况下可以互换使用,但它们之间还是有一处不同。print()是函数,有返回值;echo()实际上是一个语言结构,没有返回值,并且不能在表达式中使用。因此,答案是A。
6.以下脚本输出什么?
$a = 10;
$b = 20;
$c = 4;
$d = 8;
$e = 1.0;
$f = $c + $d * 2;
$g = $f % 20;
$h = $b - $a + $c + 2;
$i = $h << $c;
$j = $i * $e;
print $j;
?>
A.128
B.42
C.242.0
D.256
E.342
%运算符表示取模,它返回两个操作数相除的余数。<<是左移运算符,相当于乘以2 的N 次方。最后的答案乘以了一个浮点数,改变了它的数据类型。但是,由于小数点后是零,因此输出的结果不包含小数部分。答案是256(D)。
7.如何给变量$a,$b 和$c 赋值才能使以下脚本显示字符串“Hello, World!”?
$string = "Hello, World!";
$a = ?;
$b = ?;
$c = ?;
if($a) {
if($b && !$c) {
echo "Goodbye Cruel World!";
} else if(!$b && !$c) {
echo "Nothing here";
}
}
else {
if(!$b) {
if(!$a && (!$b && $c)) {
echo "Hello, World!";
} else {
echo "Goodbye World!";
}
} else {
echo "Not quite.";
}
}
?>
A.False, True, False
B.True, True, False
C.False, True, True
D.False, False, True
E.True, True, True
根据条件式的逻辑,要想得到Hello, World!字符串,必须要在第一个if 结构中满足else 的条件。因此$a 必须为False,然后$b 也必须为False。最内层的条件语句的实现要求
先前的两个变量($a 和$b)是False,而$c 必须是True(答案是D)。
8.以下脚本输出什么?
$array = '0123456789ABCDEFG';
$s = '';
for ($i = 1; $i < 50; $i++) {
$s .= $array[rand(0,strlen ($array) - 1)];
}
echo $s;
?>
A.50 个随机字符组成的字符串
B.49 个相同字符组成的字符串,因为没有初始化随机数生成器
C.49 个随机字符组成的字符串
D.什么都没有,因为$array 不是数组
E.49 个字母…G?组成的字符串
正确答案是C。从PHP4.2.0 开始,除非已经给定了一个伪随机整数列,否则不再需要
用srand()函数初始化随机数生成器。此外,即使随机数生成器没有被事先播种,脚本
仍然会生成49 个伪随机字符。尽管$array 变量是字符串,但可以用访问数组的方式进
行访问——使用数字索引访问某个位置上的字符。最后,for 循环将从 1 开始执行到50,
也就是执行了49 次。
9.哪种语句结构用来表现以下条件判断最合适?
if($a == 'a') {
somefunction();
} else if ($a == 'b') {
anotherfunction();
} else if ($a == 'c') {
dosomething();
} else {
donothing();
}
?>
A.没有default 的switch 语句
B.一个递归函数
C.while 语句
D.无法用别的形式表现该逻辑
E.有default 的switch 语句
用一系列的if…else 语句来检查一个条件的代码块,最适合用switch 语句来替代。因为if 语句中有一个捕捉所有其他条件的else,对应的,switch 代码块需要一个default。
正确答案是E。
switch($a) {
case 'a':
somefunction();
break;
case 'b':
anotherfunction();
break;
case 'c':
dosomething();
break;
default:
donothing();
}
?>
10.要修改每个元素的值,如何遍历$myarray 数组最合适?
$myarray = array ("My String","Another String","Hi, Mom!");
?>
A.用for 循环
B.用foreach 循环
C.用while 循环
D.用do…while 循环
E.办不到!
通常情况下,foreach 语句是遍历数组的首选。但是,由于foreach 语句是在数组的副
本上进行操作,而我们需要给数组中每个元素重新赋值,所以在这里foreach 就不适用了。尽管也可以用while 循环和do…while 循环,但由于数组是顺序索引的,最合适的
语句还是for 语句。因此答案是A。
$myarray = array ("My String", "Another String", "Hi, Mom!");
for($i = 0; $i < count($myarray); $i++)
{
$myarray[$i] .= " ($i)";
}
?>
11.考虑如下代码片段:
define("STOP_AT", 1024);
$result = array();
/* 在此处填入代码*/
{
$result[] = $idx;
}
print_r($result);
?>
标记处填入什么代码才能产生如下数组输出?
Array
{
[0] => 1
[1] => 2
[2] => 4
[3] => 8
[4] => 16
[5] => 32
[6] => 64
[7] => 128
[8] => 256
[9] => 512
}
A.foreach($result as $key => $val)
B.while($idx *= 2)
C.for($idx = 1; $idx < STOP_AT; $idx *= 2)
D.for($idx *= 2; STOP_AT >= $idx; $idx = 0)
E.while($idx < STOP_AT) do $idx *= 2
由于题目只允许填写一行代码,唯一合适的是for 循环,因此答案只能是C 或者D。
要选出能生成正确结果的for 循环,我们必须先复习一下for 循环的构成要素。PHP 中,for 循环是这样声明的:
for(<初始化>;<继续执行,直到>;<重复执行>)
<初始化>在循环开始时执行一次,然后for 循环开始执行大括号内的代码,直到<继续
执行,直到>的值为False。每完成一次循环,执行一次<重复执行>。因此,正确的代
码块应该是:
for ($idx = 1; $idx < STOP_AT; $idx *= 2)
答案是C。
12.为用户定义函数is_leap()选择一个合适的函数声明。is_leap 使用2000 作为默认年份。
/* 函数声明处*/
{
$is_leap = (!($year %4) && (($year % 100) ||
!($year % 400)));
return $is_leap;
}
var_dump(is_leap(1987)); /* Displays false */
var_dump(is_leap()); /* Displays true */
?>
A.function is_leap($year = 2000)
B.is_leap($year default 2000)
C.function is_leap($year default 2000)
D.function is_leap($year)
E.function is_leap(2000 = $year)
5 个选项中,只有两个是合法的PHP 函数声明(A 和D)。在这两个选项中,只有一
个设置了参数的默认值——答案是A。
13.运行以下代码将显示什么值?假设代码运行时的URL 是:testscript.php?c=25 14.
function process($c, $d = 25)
{
global $e;
$retval = $c + $d - $_GET['c'] - $e;
return $retval;
}
$e = 10;
echo process(5);
?>
A.25
B.-5
C.10
D.5
E.0
本题考察PHP 中变量作用域的相关知识。你必须明确global 关键字是如何将变量引入
本地域的,以及$_GET、$_POST、$_COOKIE、$_REQUEST 等超级全局变量的作用
域。本题中,最终的数学表达式是5+25-25-10,等于-5,答案是B。
14.考虑如下代码:
function myfunction($a, $b = true)
{
if($a && !$b) {
echo "Hello, World!\n";
}
}
$s = array(0 => "my",
1 => "call",
2 => '$function',
3 => ' ',
4 => "function",
5 => '$a',
6 => '$b',
7 => 'a',
8 => 'b',
9 => '');
$a = true;
$b = false;
/* Group A */
$name = $s[?].$s[?].$s[?].$s[?].$s[?].$s[?];
/* Group B */
$name(${$s[?]}, ${$s[?]});
?>
脚本中的每个问号(?)代表$s 数组的一个数字索引。要想代码执行时显示Hello, World!字符串,该如何选择数字索引?
A.Group A: 4,3,0,4,9,9 Group B: 7,8
B.Group A: 1,3,0,4,9,9 Group B: 7,6
C.Group A: 1,3,2,3,0,4 Group B: 5,8
D.Group A: 0,4,9,9,9,9 Group B: 7,8
E.Group A: 4,3,0,4,9,9 Group B: 7,8
函数能被以一个包含着函数名的变量后面加上括号(以及必要的参数)的形式动态
调用。对于Group A来说,合适的索引组合是0,4,9,9,9,9,产生字符串myfunction。另一方面,参数将使用${}结构的可变变量。对Group B来说,合适的索引应该是7
和8,等于${…a?}$和{…b?}——即$a和$b。因此答案是D。
15.运行时(run-time)包含一个PHP 脚本使用______,而编译时(compile-time)包含一个PHP 脚本使用______。
A.include_once, include
B.require, include
C.require_once, include
D.include, require
E.以上皆可
在较新版本的PHP 中,require(或requier_once())和include()(或include_once())只有
一个区别——如果包含的文件不存在,前者将产生一个致命错误,同时终止脚本的执
行;而后者只会产生一个警告。因此答案E 正确。
16.什么情况下声明函数时不能给参数赋默认值?
A.当参数是布尔值时
B.当函数是类中的成员时
C.当参数是通过引用传递时
D.当函数只有一个参数时
E.永远不会
当参数被声明为通过引用传递时,你不能给它赋默认值,此时解释器期望获得一个能
在函数内部进行修改的变量。答案是C。
17.______操作符在两个操作数中有一个(不是全部)为True 时返回True。
答案:__正确答案是逻辑异或(xor)运算符__________
18.全等运算符===如何比较两个值?
A.把它们转换成相同的数据类型再比较转换后的值
B.只在两者的数据类型和值都相同时才返回True
C.如果两个值是字符串,则进行词汇比较
D.基于strcmp 函数进行比较
E.把两个值都转换成字符串再比较
全等运算符比较两个操作数的数据类型和值,两者中有一个不同,都会返回False。因
此答案是B。
19.以下哪个选项是把整型变量$a 的值乘以4?(双选)
A.$a *= pow (2, 2);
B.$a >>= 2;
C.$a <<= 2;
D.$a += $a + $a;
E.一个都不对
答案是A 和C。A 选项中,pow 函数计算 2 的平方,答案是4。C 选项中,左移运算符将$a 的值左移两位,相当于乘以4。
20.一段脚本如何才算彻底终止?
A.当调用exit()时
B.当执行到文件结尾时
C.当PHP 崩溃时
D.当Apache 由于系统故障而终止时
答案是A。一段脚本并不会在执行到文件末尾时终止,所以当前文件才能被其他脚本
包含。至于PHP 和Apache 崩溃,这两个说法就太恶搞了
面向对象编程
1、用PHP打印出前一天时间格式是-5-10 22:21:21(2分) $a = date("Y-m-d H:i:s",strtotime("-1 day")); print_r($a); 2、echo(),print(),print_r()区别(3分) echo 和print不是一种函数,是一种语言构造 int print(string $arg),只有一种参数 echo arg1,arg2;可以输出各种参数,返回void echo和print只能打印出string,不能打印出构造 print_r能打印出构造 例如 $arr = array("key"=>"value"); print_r($arr); 3、可以使HTML和PHP分离开使用模板(1分) smarty,phplib 4、使用哪些工具进行版本控制?(1分) svn,git,cvs 5、如何实现字符串翻转?(3分) 英文: strrev($a)
中文或其她文字: 中文:GB2312,代码是使用GB2312编码
PHP核心课程测试题一.单选题( 1’ x 50 = 50’ ) 1. PHP是哪一种类型的语言( ) A.编译型 B.解释性 C.两者都是 D.两者都不是 2. 在用浏览器查看网页时出现404错误可能的原因是( ) A.页面源代码错误 B.文件不存在 C.与数据库连接错误 D.权限不足 3. 若x,y为int类型变量,则执行以下语句后,y的值为( ) A.1 B.2 C.3 D.0 4.下列代码执行后,输出结果正确的是( ) A.1 B.2 C.运行错误 D.都不对
5. 执行完以下代码后,变量$num的值为( ) A.10 B.20 C.30 D.显示错误 6. 以下程序运行结果为( ) A.5 + 3 + 1 = 9 B.1 + 5 + 3 =9 C.提示错误,并有显示:+ 3 + 1 = 4 D.9 7. 下面的脚步运行以后,$array数组所包含的值是( ) $v){ $v = 2 } ?> A.arra y (…2?, ?2?) B.array (1, 1) C.array (2, 2) D.array (null,null) 8. 查询名字中第2个字为“阳”的学生的姓名和学号,正确的是( ) A.Select Sname,Sno from student where Sname like ‘_阳%’; B.Select Sname,Sno from student where Sname like ‘阳%’;
P h p面试宝典100题汇总-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
Php面试100题汇总 1,Http 和Https的区别 第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议 第二:http和https使用的是完全不同的连接方式,端口也不一样,前者80 或者443第三:http连接很简单,是无状态的。https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议。 2.什么方法来加快页面的加载速度 1,用到服务器资源时在打开,不用时,立即关闭服务器资源。 2,数据库添加索引 3,页面可生成静态 4,图片等大文件单独放在一个服务器 5,能不查询数据库的尽量不去数据取数据,可以放在缓存中。 3.表单中 get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. ,print,print_r 的区别: echo 是php语句,无返回值。 print,print_r是函数,有返回值。 print()只能打印出简单类型变量的值(如int,string) print_r()可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串 与cookie区别 session与cookie相同:跨页面、不跨用户 session与cookie不相同: 1、session可以存储任意类型的数据,但cookie只能存储字符串 2、cookie产生在服务器端、存储在客户端 session产生在服务器端、存储在服务器端 6.魔术常量 答案: __LINE__文件中的当前行号。 __FILE__文件的完整路径和文件名。 __FUNCTION__函数名称 __CLASS__类的名称 __METHOD__类的方法名 7.数据库中的事务是什么? 答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事
“中欧商业在线”PHP笔试 一、编程题 1、如何实现字符串翻转?(PHP) 答:可以用下面这个自定义函数 function getStr($str){ //输入字符串 $len=strlen($str); //计算字符串长度 for ($i=0;$i<$len/2;$i++){ $temp=$str[$i]; $str[$i]=$str[$len-$i-1]; $str[$len-$i-1]=$temp; } return $str; //返回翻转结果 } 2、解释这则用JS写得正则表达式。 /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ 答:匹配以数字字母开头不能出现-+.,必需有一个@,再以数字字母开始,不能有-+.,只能有一个点,以字母结尾 3、用PHP写一个程序连接MYSQL数据库,并查出 4、DIV+CSS布局 https://www.wendangku.net/doc/2a14246624.html,首页 由于时间关系!布局没有做完。 5、用任何语言写一个排序函数 答:function getrange($a,$b) //假如传进来的是数字或字母 { //按数字升序排序 $num1=array($a,,$b); sort($num1,SORT_NUMERIC); foreach ($num1 as $mychrs1) { echo $mychrs1." ";
比较基础的php面试题及答案 填空题:1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量__$_SERVER[PHP_SELF]__中;而链接到当前页面的URL记录在预定义变量__$_SERVER[HTTP_REFERER]__中2.执行程序段将输出__0__。3.在HTTP 1.0中,状态码401 的含义是____;如果返回“找不到文件”的提示,则可用header 函数,其语句为____。4.数组函数arsort 的作用是__对数组进行逆向排序并保持索引关系__;语句error_reporting(2047)的作用是__报告所有错误和警告__。5.PEAR中的数据库连接字符串格式是____。6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):preg_replace(“//si”, “newinfo”, $script);7.以Apache 模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php 的文件都作为PHP脚本处理。LoadModule php5_module “c:/php/php5apache2.dll”, AddType application/x-httpd-php .php,8.语句include 和require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句__require_once||include_once__来代替它们。9.类的属性可以序列化后保存到session 中,从而以后可以恢复整个类,这要用到的函数是____。10.一个函数的参数不能是对
几道PHP面试题 1.如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到? 2.求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数3?请写一个函数,实现以下功能:字符串“ open_door ” 转换成“OpenDoor ”、” make_by_id ” 转换成” MakeByld ”。 4.要求写一段程序,实现以下数组$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, ‘n ame '=> 'Name1 ),'1)=> array ( ‘ tid ' => 2, 'n ame '=> 'Name2 )),'2)=> array ( ‘ tid '=> 5, ‘ n ame '=> ‘ Nam e3 '),'3' => array ( ‘ tid ' => 7, ‘ name ' => ‘ Name ')),'1 ' => array ('0)=> array (‘ tid '=> 9, ‘name ' => ‘ Name5 ' )));5?请简述数据库设计的范式及应用。 一般第3范式就足以,用于表结构的优化,这样做既可以避免应用程序过于
php面试题及答案,经典php笔试题与答案 问题 1.考虑如下脚本。标记处应该添加什么代码才能让脚本输出字符串 php? $alpha = 'abcdefghijklmnopqrstuvwxyz'; $letters = array(15, 7, 15); foreach($letters as $val) {/* 这里应该加入什么 */ } ?> A.echo chr($val); B.echo asc($val); C.echo substr($alpha, $val, 2); D.echo $alpha{$val}; E.echo $alpha{$val+1} 2.以下哪一项不能把字符串$s1 和$s2 组成一个字符串? A.$s1 + $s2 B.”{$s1}{$s2}” C.$s1.$s2 D.implode(”, array($s1,$s2)) E.以上都可以 3.变量 $email 的值是字符串 user@https://www.wendangku.net/doc/2a14246624.html, ,以下哪项能把字符串转化成 https://www.wendangku.net/doc/2a14246624.html,? A.substr($email, strpos($email, “@”));
B.strstr($email, “@”); C.strchr($email, “@”); D.substr($email, strpos($email, “@”)+1); E.strrpos($email, “@”); 4.给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每 个独立的值放入一个新创建的数组? A.strstr() B.不可能只调用一次就完成 C.extract() D.explode() E.strtok() 5.要比较两个字符串,以下那种方法最万能? A.用 strpos 函数 B.用==操作符 C.用 strcasecmp() D.用 strcmp() 6.以下哪个 PCRE 正则表达式能匹配字符串 php|architect? A..* B.…|……… C.\d{3}\|\d{8} D.[az]{3}\|[az]{9} E.[a-z][a-z][a-z]\|\w{9} 7.以下哪些函数能用来验证字符串的完整性?(三选)
PHP程序员考题 考试说明: 1、试卷总分为100分。 2、本次考试时间为120分钟。 一、逻辑推理题(9分,每题3分) 1. Jack夫妇请了Tom夫妇和Henrry夫妇来他们家玩扑克。这种扑克游戏有一种规则,夫妇两个不能一组。Jack跟Lily一组,Tom的队友是Henrry的妻子,Linda的丈夫和Sara一组。那么这三对夫妇分别为:(B) A. Jack—Sara,Tom—linda,Henrry—Lily B. Jack—Sara,Tom—Lily,Henrry—linda C. Jack—linda,Tom—Lily,Henrry—Sara D. Jack—Lily,Tom—Sara,Henrry—linda 2. 有17根11.1米长的钢管,要截成1.0米和0.7米的甲、乙两种长度的管子,要求截成的甲、乙两种管子的数量一样多。问:最多能截出甲、乙两种管子各多少根?(C) A. 99 B.105 C. 111 D. 121 3. 一个水库在年降水量不变的情况下,能够维持全市12万人20年得用水量。在该市新迁入3万人之后,该水库只够维持15年得用水量。市政府号召节约用水,希望能将水库的使用寿命提高到30年。那么该市市民平均需要节约多少比例的水才能实现政府制定的目标?(A) A.2/5 B.2/7 C.1/3 D.1/4 二、PHP语言题(36分,每题3分) 1.语句for($k=0;$k=1;$k++);和语句for($k=0;$k==1;$k++);执行的次数分别是(3分): A 无限和0 B 0和无限 C 都是无限 D 都是0 参考答案:A 2.读取post方法传递的表单元素值的方法是(3分): A $_post["名称"] B $_POST["名称"] C $post["名称"] D $POST["名称"] 参考答案:B 3.下面哪个函数可以打开一个文件,以对文件进行读和写操作?(3分) A fget()
php 笔试大全面试题答案解析 2009-09-23 13:31 选择题 1、如何产生带有数字列表符号的列表?(c) A.
6、以下一段XHTML代码片段,它不符合W3C规范,请问出现了几处错误: ( 2)
1.以下哪一句不会把John 新增到users 阵列? $users[] = 'john'; 成功把John 新增到阵列users。 array_add($users,’john’); 函式array_add() 无定义。 array_push($users,‘john’); 成功把John 新增到阵列users。 $users ||= 'john'; 语法错误。 2.sort()、assort()、和ksort() 有什么分别?它们分别在什么情况下使用? sort() 根据阵列中元素的值,以英文字母顺序排序,索引键会由0 到n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。 assort() PHP 没有assort() 函式,所以可能是asort() 的笔误。 asort() 与sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。 ksort() 根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。 3.以下的代码会产生什么?为什么? $num =10; function multiply(){ $num =$num *10; } multiply(); echo$num; 由于函式multiply() 没有指定$num 为全域变量(例如global $num 或者$_GLOBALS['num']),所以$num 的值是10。 4. reference 跟一个正规的变量有什么分别?如何pass by reference?在什么情况下我们需要这样做? Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用都见到这个变量的新值。 一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值,应用的其他部分仍然见到旧值。 $myVariable = "its' value"; Myfunction(&$myVariable); // 以reference 传送参数以reference 传送参数给函式,可以使函式改变了的变量,即使在函式结束后仍然保留新值。 5.些函式可以用来在现正执行的脚本中插入函式库? 对这道题目不同的理解会有不同的答案,我的第一个想法是插入PHP 函式库不外乎include()、include_once()、require()、require_once(),但细心再想,“函式库”也应该包括com 物件和.net 函式库,所以我们的答案也要分别包括com_load 和dotnet_load,下次有人提起“函式库”的时候,别忘记这两个函式。
问题 1.选择合适的答案填入空白处 PHP 是一种______脚本语言,基于______引擎。PHP 最常被用来开发动态的 ______内 容,此外,它同样还可被用来生成______(以及其他)文档。 A.动态,PHP,数据库,HTML B.嵌入式,Zend,HTML,XML C.基于 Perl 的,PHP,Web,静态 D.嵌入式,Zend,Docbook 文档,MySQL E.基于 Zend 的,PHP,图像,HTML 1.唯一有意义的答案是 B。PHP 是一种基于 Zend 引擎的脚本语言,它通常被嵌入在 HTML 代码中。它主要被用来开发 HTML 文档,但是也可以用它来开发其他类型的文档,比 如 XML。 2.以下哪种标签不是 PHP 起始/结束符? A.<% %> B.// C. D./* */ E.
2. PHP 编程中,人们不太使用<% %>和两个标签,但它们确实是合法的 PHP 界定符。 标签是非法的,因此正确的答案是 D。记住,根据 php.ini 文件中的配置不同,这 当中的某些标签无法在特定的情况下使用。 3.以下代码哪个不符合 PHP 语法? A.$_10 B.${“MyVar”} C.&$something D.$10_somethings E.$aVaR 3. PHP 变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。${“MyVar”} 是一个合法的变量名,它使用的是较松散的命名约定。&$something 是对$something 的 引用。然而,变量名不能以数字为开头,$10_somethings 是非法的,因此答案是 D。 4.运行以下代码将显示什么? define(myvalue, "10"); $myarray[10] = "Dog"; $myarray[] = "Human"; $myarray['myvalue'] = "Cat"; $myarray["Dog"] = "Cat";
1 php面试题及答案(原创)收藏 基础题: 1.表单中get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2.session与cookie的区别? 答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。 两者都可通过时间来设置时间长短 3.数据库中的事务是什么? 答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成, 事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。 简述题: 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)**************** 答:echo date('Y-m-d H:i:s', strtotime('-1 days')); 2、echo(),print(),print_r()的区别(3分) 答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print()只能打印出简单类型变量的值(如int,string) print_r()可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串 3、能够使HTML和PHP分离开使用的模板(1分) 答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate 5、使用哪些工具进行版本控制?(1分) 答:cvs,svn,vss; 6、如何实现字符串翻转?(3分) 答:echo strrev($a); 7、优化MYSQL数据库的方法。(4分,多写多得) 答: 1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM 2、使用连接(JOIN)来代替子查询: 3、使用联合(UNION)来代替手动创建的临时表 4、事务处理:
姓名:__________ 面试时间:___________ 1、使用过哪些版本控制器 2、使用过哪些框架 3、从上家公司离职的原因 一、基础技能题 1、实现中文字串截取无乱码的方法 2、php5的构造函数和析构函数及具体作用。 3、HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。 4、Include require include_once require_once 的区别 5、请写出0/false/null之间的关系 二、计算题
6、 $count = 5; function get_count() { static $count = 0; return $count++; } ++$count; echo get_count(); echo get_count(); 7、 echo count(null); echo count(false); 8、 $a = 3; $b = 5; if($a = 5 || $b = 7) { $a++; $b++; } echo $a . " " . $b; 9、 function get_arr($arr){ unset($arr[0]); } $arr1 = array(1, 2); $arr2 = array(1, 2); get_arr(&$arr1); get_arr($arr2); echo count($arr1); echo count($arr2); 三、程序编写题
1、使用PHP描述冒泡排序算法,对象可以是一个数组 2、使用PHP描述快速排序算法,对象可以是一个数组 3、如何实现字符串翻转(注* 不可使用内置字符串翻转函数) 四、扩展题 1、请谈谈你对php动态抓取的认识。 2、你做过最得意的项目是什么做这个项目中都遇见了哪些问题后来是怎么解决的 …
一、MySQL相关知识 1、请列举mysql优化方式 选取最适用的字段属性、事务、锁定表、使用外键、使用索引、优化的查询语句 使用连接(JOIN)来代替子查询(Sub-Queries) 使用联合(UNION)来代替手动创建的临时表 2、请列举分库分表的常用方法 有一个1000多万条记录的用户表members,查询起来非常之慢 "; echo "INSERT INTO members{$i} SELECT * FROM members WHERE mid%100={$i}
"; } ?> 3、 Mysql+如何做双机热备和负载均衡 1.主服务器授权 2.数据复制 3.配置主服务器 4.重启master 5.配置slave 6.重启slave 7.查看master的状态与设置的是否一致 8.查看slave 4、数据表类型有哪些 MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等 MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。 5、防sql注入的方法? mysql_escape_string(strip_tags($arr["$val"]));
6、mysql把一个大表拆分多个表后,如何解决跨表查询效率问题 [php]view plaincopy 1./** 2.* 函数名称:post_check() 3.* 函数作用:对提交的编辑内容进行处理 4.* 参数:$post: 要提交的内容 5.* 返回值:$post: 返回过滤后的内容 6.*/ 7.function post_check($post){ 8.if(!get_magic_quotes_gpc()){// 判断magic_quotes_gpc是否为打 开 9.$post = addslashes($post);// 进行magic_quotes_gpc没有打开的 情况对提交数据的过滤 10.} 11.$post = str_replace("_","\_", $post);// 把'_'过滤掉 12.$post = str_replace("%","\%", $post);// 把'%'过滤掉 13.$post = nl2br($post);// 回车转换 14.$post = htmlspecialchars($post);// html标记转换 15.return $post; 16.} 7、索引应用 7.1什么情况下考虑索引 7.2什么情况不适合索引 7.3一个语句是否用到索引如何判断
T1 一、填空题 1.PHP是用什么语言编写的? :脚本语言 2. LAMP的全称是? :LINUX 、APACHE、MYSQL、PHP 3. PHP的三种注释方式? :#、//、/**/ 4. PHP使用什么符号定义变量? :$ 二、简答题 1. 请列出PHP的8种数据类型。? :整型、浮点型、字符串、数组、逻辑、对象、NULL、资源型 :资源RESOURCE是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 2. 写出如下程序的输出结果? $TEST = ‘AAAAAA’; $ABC = & $TEST; UNSET($TEST); ECHO $ABC; ?> :AAAAAA 3. 4.$I=2,编程实现判断$I是否为整型,是则输出$I,不是则输出“非整型变量”? $L=2 IF(IS_INT($L)){ ECHO $L; }ELSE{ ECHO “非整型变量”; } IS_ARRA Y IS_BOOL I S_CALLABLE IS_DOUBLE IS_FLOA T IS_ALONG IS_NUMBERIC IS_OBJECT IS_RESOURCE IS_STRING T2 PHP基础部分 1. 以下PHP代码的输出结果? $I=10; $N = $I++; ECHO $N, $I++, ++$I :10,11,13 2. INCLUDE与REQUIRE的区别? :REQUIRE 的使用方法如REQUIRE("MYREQUIREFILE.PHP"); 。这个函数通常放在PHP 程序的最前面,PHP 程序在执行前,就会先读入REQUIRE 所指定引入的文件,使它变成PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。INCLUDE 使用方法如INCLUDE("MYINCLUDEFILE.PHP"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到INCLUDE 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。 他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区
1.以下哪种类型是B/S构架的正确描述?(C) A. 需要安装客户端的软件 B. 不需要安装就可以使用的软件 C. 依托浏览器的网络系统 D. 依托outlook等软件的邮件系统? 2.PHP中,单引号和双引号所包围的字符串有什么区别?(AD)(选择两项) A. 单引号速度快,双引号速度慢 B. 双引号速度快,单引号速度慢 C. 两者没有速度差别 D. 双引号解析其中以$开头的变量,而单引号不解析 3.下面哪个不是合法的SQL的归类函数?(E) A. AVG B. SUM C. MIN D. MAX E. CURRENT_DATE() 4.若y , x为int型变量,则执行以下语句后,y的值为(B) x=1; ++x; y = x++; A、1 B、2 C、3 D、0 5.以下代码执行结果为:(A) $num=”24linux”+6; echo $num; ?> A 30 B 24linux6 C 6 D 30linux 6.PHP是一种什么型的语言:(C) A、编译型 B、解释型 C、两者都是 D、两者都不是 7.下列描述正确的是(B) A、JavaScript是一种编译型语言 B、JavaScript是一种基于对象和事件驱动的编程语言 C、JavaScript中变量声明采用强定义类型 D、JavaScript采用静态联编 8.要想在网页中输出”<”正确的方法是(B) A: & B: < C: > D: ” 9.创建一个滚动菜单的HTML代码是?(D) A.
B. C.