php笔试题附带详细答案(精选8篇)由网友“项珠子”投稿提供,以下文章小编为您整理的php笔试题附带详细答案,供大家阅读。
篇1:php笔试题附带详细答案
php笔试题附带详细答案
1、用PHP打印出前一天的时间格式是-5-10 22:21:21
解:echo date(‘Y-n-d H:i:s’, strtotime(‘-1 day’));
原因:
format 字符说明返回值例子a小写的上午和下午值am 或 pmA大写的上午和下午值AM 或 PMd月份中的第几天,有前导零的 2 位数字01 到 31D星期中的第几天,文本表示,3 个字母Mon 到 SunF月份,完整的文本格式,例如 January 或者 MarchJanuary 到 Decemberg小时,12 小时格式,没有前导零1 到 12G小时,24 小时格式,没有前导零0 到 23h小时,12 小时格式,有前导零01 到 12H小时,24 小时格式,有前导零00 到 23i有前导零的分钟数00 到 59>I是否为夏令时如果是夏令时为 1,否则为 0j月份中的第几天,没有前导零1 到 31l(“L”的小写字母)星期几,完整的文本格式Sunday 到 SaturdayL是否为闰年如果是闰年为 1,否则为 0m数字表示的月份,有前导零01 到 12M三个字母缩写表示的月份Jan 到 Decn数字表示的月份,没有前导零1 到 12O与格林威治时间相差的小时数例如:+0200rRFC 822 格式的日期例如:Thu, 21 Dec 16:01:07 +0200s秒数,有前导零00 到 59>S每月天数后面的英文后缀,2 个字符st,nd,rd 或者 th,可以和 j 一起用。t给定月份所应有的天数28 到 31T本机所在的时区例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。w星期中的第几天,数字表示0(表示星期天)到 6(表示星期六)WISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的.)例如:42(当年的第 42 周)Y4 位数字完整表示的年份例如: 或 y2 位数字表示的年份例如:99 或 03z年份中的第几天0 到 366
2、能够使HTML和PHP分离开使用的模板
解:其实PHP本身就是一种模版引擎,我用过的是smarty,常见的还有PHPLib,FastTemplate,Savant这里有个模板引擎列表
:www.sitepoint.com/forums/showthread.php?t=123769
3、使用哪些工具进行版本控制?
解:CVS 和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具,呃,这个可能需要这么回答:CVS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端.
4、如何实现字符串翻转?
解: 用strrev函数,不准用PHP内置的就自己写:
function strrev($str)
{
$len=strlen($str);
$newstr = “”;
for($i=$len;$i>=0;$i–)
{
$newstr .= $str{$i};
}
return $newstr;
}
5、优化MYSQL数据库的方法?
我的答案:
(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率
(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read &
write,从服务器read only,或者N台服务器,各机器互为Master
(3).(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引
(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句
(5). 所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select count(*) … where article_id = ? 就可以了,不要先select * … where article_id = ?然后msql_num_rows.只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就update … set title = ? where article_id = ?不要set content = ?(大文本)
(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度.
6、谈谈事务处理?
解:如同是个编程语言都会有答应Hello World的例子一样,是本数据库的教材都会讲A给B的账户转账50美元的例子,回答这个就好了.不过据我所知,用MySQL的企业,很少用MySQL来实现事务处理.何况现在Oracle收购了InnoDB的公司.
7、apache+mysql+php实现最大负载的方法
8、实现中文字串截取无乱码的方法,
解:mb_substr
9、echo(),print(),print_r()的区别
解:echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象
10、在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量什么中;而链接到当前页面的URL记录在预定义变量什么中。
解:echo $_SERVER['PHP_SELF']; echo $_SERVER[“HTTP_REFERER”];
11、执行程序段将输出??
解:0
12、在HTTP 1.0中,状态码 401 的含义是什么;如果返回“找不到文件”的提示,则可用 header 函数,其语句为什么。
解:未授权 header(“HTTP/1.0 404 Not Found”);
13、数组函数 arsort 的作用是(对数组进行逆向排序并保持索引关系);语句 error_reporting(2047)的作用是(All errors and warnings)。
14、PEAR中的数据库连接字符串格式是()?
15、写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):( /
16、以Apache模块的方式安装PHP,在文件http.conf中首先要用语句(1)动态装载PHP模块,然后再用语句(2)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
解:(1) LoadModule php5_module “D:/xampp/apache/bin/php5apache2.dll” (2) AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
17、语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是什么;为了避免多次包含同一文件,可以用语句()来代替它们。
解:发生异常时include产生警告require产生致命错误 (13) require_once()/include_once()
18、类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是( serialize() /unserialize() )
19、一个函数的参数不能是对变量的引用,除非在php.ini中把(allow_call_time_pass_reference)设为on.
20、SQL 中LEFT JOIN的含义是(自然左外连接)。
如果 tbl_user记录了学生的姓名(name)和学号(ID),
tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),
要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句:select name , count(score) as sum_score from tbl_user left join tbl_score on tbl_user.ID=tbl_score.ID group by tbl_user.ID
21、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(结束标识符所在的行不能包含任何其它字符除”;”)。
22、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
解
/** * 遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。 * @param string $dir * @return array */
function my_scandir($dir)
{
$files = array();
if ( $handle = opendir($dir) ) {
while ( ($file = readdir($handle)) !== false ) {
if ( $file != “..” && $file != “.” ) {
if ( is_dir($dir . “/” . $file) ) {
$files[$file] = rec_scandir($dir . “/” . $file);
}else {
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
23、简述论坛中无限分类的实现原理。
24、设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。
篇2:PHP笔试题及答案
PHP笔试题及答案
1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的的前一页面URL记录在预定义变量(2)中
//本页地址,SCRIPT_NAME也可以:php/test.php
echo $_SERVER['PHP_SELF'].“
“;
//链接到当前页面的前一页面的 URL 地址:
echo $_SERVER['HTTP_REFERER'].”
“;
//其它的见参考手册:语言参考》变量》预定义变量
//前执行脚本的绝对路径名:D:Inetpubwwwrootphp est.php
echo $_SERVER[”SCRIPT_FILENAME“].”
“;
//正在浏览当前页面用户的 IP 地址:127.0.0.1
echo $_SERVER[”REMOTE_ADDR“].”
“;
//查询(query)的字符串(URL 中第一个问号 ? 之后的内容):id=1&bi=2
echo $_SERVER[”QUERY_STRING“].”
“;
//当前运行脚本所在的文档根目录:d:inetpubwwwroot
echo $_SERVER[”DOCUMENT_ROOT“].”
“;
?>
2.执行程序段将输出__,
//参考手册》语言参考》运算符》算术运算符》%为取模运算,输出0
echo 8%(-2).”
“;
//取模 $a % $b 在 $a 为负值时的结果也是负值。输出-2
echo ((-8)%3).”
“;
//输出2
echo (8%(-3)).”
“;
?>
3.在HTTP 1.0中,状态码 401 的`含义是____;如果返回“找不到文件”的提示,则可用 header 函数,其语句为____。
答:401表示未授权;header(“HTTP/1.0 404 Not Found”);[见参考手册》函数参考》HTTP函数》header]
4.数组函数 arsort 的作用是____;语句 error_reporting(2047)的作用是____,
答:arsort:对数组进行逆向排序并保持索引关系 error_reporting(2047)的作用是:report All errors and warnings
5.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):
$script=“以下内容不显示:”;
echo preg_replace(“/].*?>.*?/si”, “替换内容”, $script);
?>
6.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,
然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
答:LoadModule php5_module “c:/php/php5apache2.dll”;AddType application/x-httpd-php .php
见参考手册》目录》II. 安装与配置》6. Windows 系统下的安装》Microsoft Windows 下的 Apache 2.0.x
7.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。
答:在如何处理失败时,include() 产生一个警告而 require() 则导致一个致命错误;require_once()/include_once()
8.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.
答:allow_call_time_pass_reference boolean :是否启用在函数调用时强制参数被按照引用传递, 见参考手册》附录G
9.SQL 中LEFT JOIN的含义是__,如果 tbl_user记录了学生的姓名(name)和学号(ID),
tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句____.
答:自然左外连接
create database phpinterview;
use phpinterview
create table tbl_user
(
ID int not null,
name varchar(50) not null,
primary key (ID)
篇3:PHP经典笔试题
PHP经典笔试题
1 请说明 PHP 中传值与传引用的区别,什么时候传值什么时候传引用?
答: 传值只是把某一个变量的.值传给了另一个变量,而引用则说明两者指向了同一个地方。
2 在PHP中error_reporting这个函数有什么作用?
答: The error_reporting function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script.
3 请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确。
答:
php
if(isset($_POST['action']) &&
$_POST['action']==’submitted’)
{
$email=$_POST['email'];
if(!preg_match(“/^(?:w+.?)*w+@(?:w+.?)*w+$/”,$email))
{
echo
“电子邮件检测失败”;
}
else
{
echo
“电子邮件检测成功”;
}
}
else
{
?>
篇4:经典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}
答案解析:substr 函数能够胜任,但考虑到输出三个字母就需要三次调用该函数,所以排除此方法。那么$alpha{$val}和$alpha{$val+1}是仅有的两个可能输出题目要求的字符串的选项。因为 0 是数
组的第一个索引,所以答案是 D。
2. 以下哪一项不能把字符串$s1 和$s2 组成一个字符串?
A.$s1 + $s2
B.”{$s1}{$s2}”
C.$s1.$s2
D.implode(”, array($s1,$s2))
E.以上都可以
答案解析:除 A 以外的选项都能输出题目要求的字符串。PHP中,加号+不能把两个字符串合并成一个。
3. 变 量 $email 的 值 是 字 符 串 user@example.com , 以 下 哪 项 能 把 字 符 串 转 化 成example.com?
A.substr($email, strpos($email, “@”));
B.strstr($email, “@”);
C.strchr($email, “@”);
D.substr($email, strpos($email, “@”)+1);
E.strrpos($email, “@”);
答案解析:substr 函数返回字符串的一部分,而 strpos 函数擅长从一个字符串中找出某个指定的子串。同时使用这两个函数将满足题目要求。注意,前一个函数从 0 开始索引,而后者不是,因此需
要+1。答案是 D。
4. 给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每个独立的值放入一个新创建的数组?
A.strstr()
B.不可能只调用一次就完成
C.extract()
D.explode()
E.strtok()
答案解析:答案是 D。explode 函数使用一个字符串分隔另一个字符串,并把结果放入一个新建的数组。strtok 函数也可以做同样的事,但需要多次调用。
5. 要比较两个字符串,以下那种方法最万能?
A.用 strpos 函数
B.用==操作符
C.用 strcasecmp()
D.用 strcmp()
答案解析:答案是 D。strcmp()提供了安全的字符串比较机制。注意,选项 C 是错的,strcasecmp()不是一个“万能”函数,因为它不区分大小写。
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}
答案解析:选项中没有一个正则表达式能真正代表题目所给字符串的匹配方式,但是选项 A 和 E仍然能勉强匹配。选项 A 太普通了,它能够匹配任何字符串,因此答案是 E。
7. 以下哪些函数能用来验证字符串的完整性?(三选)
A.md5()
B.sha1()
C.str_rot13()
D.crypt()
E.crc32()
答案解析:正确答案是 A,B 和 E。用 crypt()和 str_rot13()来验证一个字符串是否被改变,效率很低。crc32()比前面两个函数好些,如果能容忍一些小错误的话,它是个不错的选择。
8. 哪个 PHP 函数与以下脚本在 UNIX 系统下执行的效果近似?
function my_funct ($filename)
{
$f = file_get_contents ($filename);
return explode (“\n”, $f);
}
?>
A.fopen()
B.fread()
C.flock()
D.split_string()
E.file()
答案解析:正确答案是 A,B 和 E。用 crypt()和 str_rot13()来验证一个字符串是否被改变,效率很低。crc32()比前面两个函数好些,如果能容忍一些小错误的话,它是个不错的选择。
9. 基于指定的式样(pattern)把一个字符串分隔开并放入数组,以下哪些函数能做到?(双
选)
A.preg_split()
B.ereg()
C.str_split()
D.explode()
E.chop()
答案解析:尽管条件不同,但 preg_split 和 explode 函数都能满足题目要求。ereg()拿一个正则表达式匹配一个字符串;str_split()按固定长度分隔字符串;而 chop()则是 rtrim()别名,用来移除
字符串末尾处的`空格。
10.以下脚本输出什么?
echo 'Testing ' . 1 + 2 . '45';
?>
A.Testing 1245
B.Testing 345
C.Testing 1+245
D.245
E.什么都没有
答案解析:本题考察你对字符串操作及操作符优先级的认识,
连接运算符(.)的优先级比加号(+)高。因此 PHP 解释器实际执行的运算可以表示为(‘Testing’ . 1) + (2 . ‘45’)。由于字符串
test 1 不是数字,所以加号前面的运算等于 0。加号后面的运算等于 245,PHP 输出的结果是 0+245,等于 245,所以答案是 D。
11.以下脚本输出什么?
$s = '12345';
$s[$s[1]] = '2';
echo $s;
?>
A.12345
B.12245
C.22345
D.11345
E.Array
答案解析:可以用访问数组元素的方式访问字符串中的字符,因此脚本只是把字符串中的第二个字符($s[1])替换成了字符 2,最终将输出 12245。答案是 B。
12.方框中的正则表达式能与以下哪些选项匹配?(双选)
/.*\*123\d/
A.******123
B.*****_1234
C.******1234
D._*1234
E._*123
答案解析:本题的要点是理解这个正则表达式的含义——从左往右,首先是零个或多个任意字符(.*),跟着是一个星号(\*),然后是 123,最后是一个数字。因此答案是 C 和 D。
13.以下哪个比较将返回 true?(双选)
A.‘1top’ == ‘1’
B.‘top’ == 0
C.‘top’ === 0
D.‘a’ == a
E.123 == ‘123’
答案解析:B 和 E 正确。选项 B 中,在比较时,字符串 top 等同于数字 0。==操作符不比对数据类型,所以将返回 true。答案 E 中,字符串 123 等同于数字 123,比较将返回 true。
14.如果用+操作符把一个字符串和一个整型数字相加,结果将怎样?
A.解释器输出一个类型错误
B.字符串将被转换成数字,再与整型数字相加
C.字符串将被丢弃,只保留整型数字
D.字符串和整型数字将连接成一个新字符串
E.整形数字将被丢弃,而保留字符串
答案解析:字符串将被转换成数字(如果无法发生转换就是 0),然后与整型数字相加。答案是 B。
15.考虑如下脚本。假设 www.php.net 能被访问,脚本将输出什么?
$s = file_get_contents (“www.php.net”);
strip_tags ($s, array ('p'));
echo count ($s);
?>
A.www.php.net 的主页的字符数
B.剔除标签后的 www.php.net 主页的字符数
C.1
D.0
E.剔除以外的标签后的 www.php.net 主页的字符数
答案解析:代码的本意是剔除 www.php.net 主页上除了 p 以外的的所有 HTML 标签。可实际上,在代码的最后一行使用了 count 函数,它统计变量中的元素数量,而不是字符串中的字符数。由于字符
串是标量,对字符串使用 count 函数将永远返回 1。答案是 C。
16.哪个函数能不区分大小写得对两个字符串进行二进制比对?
A.strcmp()
B.stricmp()
C.strcasecmp()
D.stristr()
E.以上都不能
答案解析:题目其实就是在描述 strcasecmp 函数的作用,因此答案是 C。
17.以下哪些函数能把字符串里存储的二进制数据转化成十六进制?(双选)
A.encode_hex()
B.pack()
C.hex2bin()
D.bin2hex()
E.printf()
答案解析:正确答案是 B 和 D。pack 函数能对二进制数据进行复杂的格式化,包括将字符串中的字符转化成十六进制表示。bin2hex 函数也有同样的转化功能。注意,printf()能将整数转化成十六进
制数,但无法转化字符串。
18.哪个函数能用来确保一个字符串的字符数总是大于一个指定值?
答案解析:这是在说 str_pad 函数,它可以把字符串填充到指定长度。
19.以下脚本输出什么?
echo wordwrap ($a, 1, “c”, false);
?>
答案解析:脚本将输出 ablecostscindy。wordwrap 函数通常用来把字符串切割成指定长度。然而在本题中,长度被设置为 1,因此函数将从空格处切割(第四个参数被设置为 false,因此函数不会从
单词的中间进行切割)。填充字符串是 c,等于把每个空格都换成了 c。
20.以下脚本输出什么?
echo substr_replace ($x, 'x', 1, 2);
?>
A.x
B.axle
C.axxle
D.applex
E.xapple
答案解析:脚本将输出 ablecostscindy。wordwrap 函数通常用来把字符串切割成指定长度。然而在本题中,长度被设置为 1,因此函数将从空格处切割(第四个参数被设置为 false,因此函数不会从
单词的中间进行切割)。填充字符串是 c,等于把每个空格都换成了 c。
篇5:PHP笔试题
PHP笔试题
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());
echo empty($a1) ? ‘true’ : ‘false’;//true
echo empty($a2) ? ‘true’ : ‘false’;//true
echo empty($a3) ? ‘true’ : ‘false’;//true
echo empty($a4) ? ‘true’ : ‘false’;//true
echo empty($a5) ? ‘true’ : ‘false’;//true
echo empty($a6) ? ‘true’ : ‘false’;//false
echo empty($a7) ? ‘true’ : ‘false’;//true
echo empty($a8) ? ‘true’ : ‘false’;//false
?>
3. 写出如下程序的'输出结果
$test = ‘aaaaaa’;
$abc = & $test;
unset($test);
echo $abc;//’aaaaaa’
?>
4. 写出如下程序的输出结果
function get_count(){
static $count = 0;
return $count++;
}
echo $count; //5
++$count;
echo get_count();//0
echo get_count();//1
?>
5. 写出如下程序的输出结果
$GLOBALS['var1'] = 5;
$var2 = 1;
function get_value(){
global $var2;
$var1 = 0;
return $var2++;
}
get_value();
echo $var1; //0
echo $var2; //2
?>
6. 写出如下程序的输出结果
function get_arr($arr){
unset($arr[0]);
}
$arr1 = array(1, 2);
$arr2 = array(1, 2);
get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);//1
echo count($arr2);//2
?>
篇6:PHP程序员笔试题
PHP程序员笔试题
1、用php打印出前一天的时间格式是-5-10 22:21:21(2分)
echo date(“Y-m-d G:i:s”,strtotime(“-1 day”));
2、echo(),print(),print_r()的区别(3分)
echo()是一个php语句,所以没有返回值,能打印简单的数据,
print()是一个函数,有返回值,能打印简单的'数据。
print_r()是一个函数,能打印复杂的(mix)数据。
如:
'wangking','qq'=>'123456');print_r($arr);?>
运行结果:
hello word
the value is 1
Array ( [name] =>wangking [qq] =>123456 ) ......
3、能够使html和php分离开使用的模板(1分)
smarty模板
4、使用哪些工具进行版本控制?(1分)
TortoiseSVN
6、如何实现字符串翻转?(3分)
strrev(“Hello world!”);
篇7:PHP基础笔试题
,
在服务器配置文件中定义。
$_SERVER['HTTP_HOST ']
当前请求的 Host: 头部的内容
$_SERVER['REMOTE_ADDR']
正在浏览当前页面用户的 IP 地址
篇8:PHP笔试题含答案
PHP笔试题含答案
1、用PHP打印出前一天的时间,格式是2006-5-10 22:21:21
//echo date('Y-m-d H:i:s',time()-60*60*24
echo date(“Y:m:d H:i:s”,strtotime(“-1 day”));
?>
2、echo(),print(),print_r()的区别
echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象
3、能够使HTML和PHP分离开使用的模板
so much,其实PHP本身就是一种模版引擎,我用过的是smarty,常见的还有PHPLib,FastTemplate,Savant这里有个模板引擎列表:www.sitepoint.com/forums/showthread.php?t=123769
4.如何实现PHP、JSP交互?
题目有点含糊不清,SOAP,XML_RPC,Socket function,CURL都可以实现这些,如果是考PHP和Java的整合,PHP内置了这种机制(如果考PHP和.NET的整合,也可以这么回答), 例如$foo = new Java(‘java.lang.System’);
5.使用哪些工具进行版本控制?
CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具,呃,这个可能需要这么回答:CVS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端
6.如何实现字符串翻转?
其实PHP本身就有字符串翻转的函数:strrev(),不妨试试echo strrev($str);不过所有的这三种方法都不能解决中文字符串翻转的问题,会出错的,
function reverse($var)
{
$res=“”;
for($i=0,$j=strlen($var);$i<$j;$i++)
{
$res=$var[$i].$res;
}
return $res;
}
$tmpvar=“wofang”;
$res=reverse($tmpvar);
echo $res;
?>
7、优化MYSQL数据库的方法,
(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率
(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read & write,从服务器read only,或者N台服务器,各机器互为Master
(3).(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引
(4).写高效的`SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句
(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select count(*) … where article_id = ? 就可以了,不要先select * … where article_id = ?然后msql_num_rows.
只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就update … set title = ? where article_id = ?不要set content = ?(大文本)
(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度
8、谈谈事务处理
A给B的账户转账50美元的例子
★ HTC教程
★ 几道PHP笔试题
★ 五道常见面试题
【php笔试题附带详细答案(精选8篇)】相关文章:
面试经验:php程序员深圳面试经历2022-06-28
程序员操作系统笔试题2022-12-10
实习周记计算机2024-05-07
接触人事招聘,如何面试网络美工和PHP程序员?2023-03-01
erp实施顾问笔试题有什么2022-05-07
hr面试题及答案2022-10-01
厦航面试自我介绍2022-11-03
腾讯实习生笔试经验谈2022-08-07
html学习总结2023-01-23
php 面试题2022-06-12