资源描述
1. 写出如下程序的输出结果
<?
$str1 = null;
$str2 = false;
echo $str1==$str2 ? ‘相等’ : ‘不相等’;
$str3 = ”;
$str4 = 0;
echo $str3==$str4 ? ‘相等’ : ‘不相等’; 答:相等 相等 不相等
$str5 = 0;
$str6 = ‘0′;
echo $str5===$str6 ? ‘相等’ : ‘不相等’;
?>
2. 写出如下程序的输出结果
<?
$a1 = null;
$a2 = false;
$a3 = 0;
$a4 = ”;
$a5 = ‘0′;
$a6 = ‘null’;
$a7 = array();
$a8 = array(array());
答:true true true true true false true false
echo empty($a1) ? ‘true’ : ‘false’;
echo empty($a2) ? ‘true’ : ‘false’;
echo empty($a3) ? ‘true’ : ‘false’;
echo empty($a4) ? ‘true’ : ‘false’;
echo empty($a5) ? ‘true’ : ‘false’;
echo empty($a6) ? ‘true’ : ‘false’;
echo empty($a7) ? ‘true’ : ‘false’;
echo empty($a8) ? ‘true’ : ‘false’;
?>
3. 写出如下程序的输出结果
<?
$test = ‘aaaaaa’;
$abc = & $test;
unset($test); 答:aaaaaa
echo $abc;
?>
4. 写出如下程序的输出结果
<?
$count = 5;
function get_count(){
static $count = 0;
return $count++;
}
echo $count; 5 答:5 0 1
++$count;
echo get_count(); 0
echo get_count(); 1
?>
5. 写出如下程序的输出结果
<?
$GLOBALS[’var1’] = 5;
$var2 = 1;
function get_value(){
global $var2;
$var1 = 0;
return $var2++; 答:5 2
}
get_value();
echo $var1;
echo $var2;
?>
6. 写出如下程序的输出结果
<?
function get_arr($arr){
unset($arr[0]);
}
$arr1 = array(1, 2);
$arr2 = array(1, 2);
答:1 2
get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);
echo count($arr2);
?>
7. 11.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
答:<?php
function my_scandir($dir)
{
$files=array();
if(is_dir($dir))
{
if($handle=opendir($dir))
{
while(($file=readdir($handle))!==false)
{
if($file!=”.” && $file!=”..”)
{
if(is_dir($dir.”/”.$file))
{
$files[$file]=my_scandir($dir.”/”.$file);
}
else
{
$files[]=$dir.”/”.$file;
}
}
}
closedir($handle);
return $files;
}
}
}
print_r(my_scandir(“D:Program FilesInternet ExplorerMUI”));
?>
8. 在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的的前一页面URL记录在预定义变量(2)中
<?php
//本页地址,SCRIPT_NAME也可以:php/test.php
echo $_SERVER[’PHP_SELF’].”<br />”;
//链接到当前页面的前一页面的URL地址:
echo $_SERVER[’HTTP_REFERER’].”<br />”;
//其它的见参考手册:语言参考》变量》预定义变量
//前执行脚本的绝对路径名:D:Inetpubwwwrootphp est.php
echo $_SERVER[”SCRIPT_FILENAME”].”<br />”;
//正在浏览当前页面用户的IP地址:127.0.0.1
echo $_SERVER[”REMOTE_ADDR”].”<br />”;
//查询(query)的字符串(URL中第一个问号 ? 之后的内容):id=1&bi=2
echo $_SERVER[”QUERY_STRING”].”<br />”;
//当前运行脚本所在的文档根目录:d:inetpubwwwroot
echo $_SERVER[”DOCUMENT_ROOT”].”<br />”;
?>
9. 执行程序段<?php echo 8%(-2) ?>将输出__。
<?php
//参考手册》语言参考》运算符》算术运算符》%为取模运算,输出0
echo 8%(-2).”<br />”;
//取模 $a % $b在 $a为负值时的结果也是负值。输出-2
echo ((-8)%3).”<br />”;
//输出2
echo (8%(-3)).”<br />”;
?>
10..在HTTP 1.0中,状态码401的含义是____;如果返回“找不到文件”的提示,则可用header函数,其语句为____。
答:401表示未授权;header(“HTTP/1.0 404 Not Found”);[见参考手册]函数参考》HTTP函数》header]
11 .数组函数arsort的作用是____;语句error_reporting(2047)的作用是____。
答:arsort:对数组进行逆向排序并保持索引关系error_reporting(2047)的作用是:report All errors and warnings
12.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):
答:<?php
$script=”以下内容不显示:<script language=’javascript’>alert(‘cc’);</script>”;
echo preg_replace(“/<script[^>].*?>.*?</script>/si”, “替换内容”, $script);
?>
13. 以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,
然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
答:LoadModule php5_module “c:/php/php5apache2.dll”;AddType application/x-httpd-php .php
14.语句include和require都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。
答:在如何处理失败时,include() 产生一个警告而require() 则导致一个致命错误;require_once()/include_once()
15.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.
答:allow_call_time_pass_reference boolean :是否启用在函数调用时强制参数被按照引用传递, 见参考手册》附录G
16. 在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____
答:结束标识符所在的行不能包含任何其它字符除”;”
17. 11.SQL中LEFT JOIN的含义是__自然左外链接__。
答:自然左外连接
create database phpinterview;
use phpinterview
create table tbl_user
(
ID int not null,
name varchar(50) not null,
primary key (ID)
);
create table tbl_score
(
ID int not null,
score dec(6,2) not null,
subject varchar(20) not null
);
insert into tbl_user (ID, name) values (1, ‘beimu’);
insert into tbl_user (ID, name) values (2, ‘aihui’);
insert into tbl_score (ID, score, subject) values (1, 90, ‘语文’);
insert into tbl_score (ID, score, subject) values (1, 80, ‘数学’);
insert into tbl_score (ID, score, subject) values (2, 86, ‘数学’);
insert into tbl_score (ID, score, subject) values (2, 96, ‘语文’);
select A.id,sum(B.score) as sumscore
from tbl_user A left join tbl_score B
on A.ID=B.ID
group by A.id
18.用php打印出前一天的时间,格式是:2012-5-10 22:21:21 。
答:<?php
echo date("Y-m-d H:i:s",time()-60*60*24);
//或者
echo date("Y-m-d H:i:s",strtotime("-1 day"));
?>
19.指出echo(),print(),print_r()的区别。
答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象)
echo -- 输出一个或者多个字符串
20.能够使html和php分离开使用的模板。
答:smarty,Heyes Template Class等
21.使用哪些工具进行版本控制?
答:VS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端.
展开阅读全文