PHP常见机试题及详细答案(实操真题版)_第1页
PHP常见机试题及详细答案(实操真题版)_第2页
PHP常见机试题及详细答案(实操真题版)_第3页
PHP常见机试题及详细答案(实操真题版)_第4页
PHP常见机试题及详细答案(实操真题版)_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP常见机试题及详细答案(实操真题版)本套试题为企业面试、岗位考核高频PHP上机实操题型,涵盖基础语法、数据处理、常用函数、文件操作、MySQL数据库、逻辑算法、表单处理等核心考点,所有答案均为可直接运行的完整代码,适配Windows、LinuxPHP运行环境,无冗余内容,贴合真实机考场景。一、基础语法考题(简单)试题1:输出1-100之间所有偶数题目要求:编写PHP代码,循环输出1到100之间所有偶数,每行输出一个数字。参考答案:php

<?php

//循环遍历1-100所有数字

for($i=1;$i<=100;$i++){

//判断是否为偶数

if($i%2==0){

echo$i.'<br/>';

}

}

?>解析:利用for循环遍历区间数字,通过取模运算判断偶数,余数为0即为偶数,搭配换行符逐行输出。试题2:交换两个变量的值(不使用第三个变量)题目要求:定义两个整型变量,不借助中间变量,实现两个变量值互换并输出。参考答案:php

<?php

$a=10;

$b=20;

//算术运算法交换变量

$a=$a+$b;

$b=$a-$b;

$a=$a-$b;

echo'a的值:'.$a.',b的值:'.$b;

?>解析:通过加减法运算覆盖原值,先将两数和赋值给$a,再反向计算还原各自数值,无需临时变量,是机考高频基础题型。二、数组操作考题(中频必考)试题3:统计数组中重复元素出现次数题目要求:给定数组$arr=[1,2,3,2,1,4,5,3,2,6],统计每个元素的出现次数,输出结果格式为元素=>次数。参考答案:php

<?php

$arr=[1,2,3,2,1,4,5,3,2,6];

$countArr=[];

//遍历数组统计次数

foreach($arras$val){

if(isset($countArr[$val])){

$countArr[$val]++;

}else{

$countArr[$val]=1;

}

}

//打印结果

print_r($countArr);

?>解析:定义空数组存储统计结果,遍历原数组,判断元素是否已存在,存在则次数+1,不存在则初始化为1,最终实现去重统计。试题4:对二维数组按指定字段排序题目要求:有二维学生数组,按学生分数从高到低排序,分数相同按学号升序排列。

原数组:$stu=[['id'=>103,'score'=>85],['id'=>101,'score'=>92],['id'=>102,'score'=>85]];参考答案:php

<?php

$stu=[

['id'=>103,'score'=>85],

['id'=>101,'score'=>92],

['id'=>102,'score'=>85]

];

//自定义排序规则

usort($stu,function($a,$b){

//分数降序

if($a['score']!=$b['score']){

return$b['score']-$a['score'];

}else{

//学号升序

return$a['id']-$b['id'];

}

});

print_r($stu);

?>解析:使用usort自定义排序函数,优先判断分数高低,分数一致时对比学号,满足多级排序需求,是后台数据处理常用方法。三、字符串处理考题(高频)试题5:反转字符串(不使用strrev函数)题目要求:自定义代码实现字符串反转,禁止使用PHP自带反转函数,输入字符串“abc123”,输出“321cba”。参考答案:php

<?php

functionstrReverse($str){

$newStr='';

//获取字符串长度

$len=strlen($str);

//倒序拼接字符

for($i=$len-1;$i>=0;$i--){

$newStr.=$str[$i];

}

return$newStr;

}

echostrReverse('abc123');

?>解析:通过strlen获取字符串长度,从最后一位字符开始倒序遍历,逐一对接拼接,实现原生字符串反转逻辑。试题6:去除字符串首尾空格并分割成数组题目要求:处理字符串$str='PHP,Java,Python,Go',先去除首尾空格,再按逗号分割为索引数组,输出数组内容。参考答案:php

<?php

$str='PHP,Java,Python,Go';

//去除首尾空格

$trimStr=trim($str);

//按逗号分割为数组

$arr=explode(',',$trimStr);

print_r($arr);

?>解析:trim()清除字符串首尾空白字符,explode()按指定分隔符分割字符串,是接口参数处理、数据格式化常用组合函数。四、文件操作考题(实操必考)试题7:创建文件并写入内容,读取文件内容题目要求:在当前目录创建test.txt文件,写入内容“PHP机试实操测试”,读取该文件所有内容并输出。参考答案:php

<?php

$file='test.txt';

$content='PHP机试实操测试';

//写入文件(不存在则创建,存在则覆盖)

file_put_contents($file,$content);

//读取文件内容

$read=file_get_contents($file);

echo$read;

?>解析:file_put_contents一站式实现文件创建与写入,file_get_contents快速读取文件内容,适配简单文件读写场景。如需追加内容,可在第三个参数添加FILE_APPEND。试题8:判断文件是否存在,不存在则创建题目要求:判断当前目录log.txt文件是否存在,存在则输出“文件已存在”,不存在则创建文件并输出“文件创建成功”。参考答案:php

<?php

$file='log.txt';

if(file_exists($file)){

echo'文件已存在';

}else{

//创建空文件

touch($file);

echo'文件创建成功';

}

?>解析:file_exists判断文件/目录是否存在,touch()创建空文件,常用于项目日志文件、配置文件初始化。五、MySQL数据库考题(核心机试)试题9:PHP连接MySQL数据库并查询数据题目要求:使用mysqli面向对象方式连接本地MySQL,数据库名为test,账号root,密码root,查询user表所有数据并循环输出。参考答案:php

<?php

//数据库配置

$db_host='localhost';

$db_user='root';

$db_pwd='root';

$db_name='test';

//创建连接

$mysqli=newmysqli($db_host,$db_user,$db_pwd,$db_name);

//判断连接是否失败

if($mysqli->connect_error){

die('数据库连接失败:'.$mysqli->connect_error);

}

//设置编码

$mysqli->set_charset('utf8');

//查询数据

$sql='select*fromuser';

$res=$mysqli->query($sql);

//循环输出数据

if($res->num_rows>0){

while($row=$res->fetch_assoc()){

echo'ID:'.$row['id'].'用户名:'.$row['username'].'<br/>';

}

}else{

echo'暂无数据';

}

//关闭连接

$mysqli->close();

?>解析:采用主流mysqli面向对象连接方式,包含连接判断、编码设置、数据遍历、连接关闭完整流程,杜绝乱码和连接残留问题,完全适配机考数据库实操场景。试题10:PHP实现数据新增(防SQL注入)题目要求:使用预处理语句向user表插入一条用户数据,姓名:张三,年龄:20,杜绝SQL注入风险。参考答案:php

<?php

$mysqli=newmysqli('localhost','root','root','test');

if($mysqli->connect_error){

die('连接失败');

}

$mysqli->set_charset('utf8');

//预处理SQL语句(占位符绑定参数)

$sql='insertintouser(username,age)values(?,?)';

$stmt=$mysqli->prepare($sql);

//绑定参数s=字符串i=整型

$stmt->bind_param('si',$name,$age);

//赋值并执行

$name='张三';

$age=20;

if($stmt->execute()){

echo'数据新增成功,新增ID:'.$mysqli->insert_id;

}else{

echo'新增失败:'.$stmt->error;

}

$stmt->close();

$mysqli->close();

?>解析:使用prepare预处理语句+参数绑定,彻底杜绝SQL注入,是企业开发标准写法,也是机考数据库题型的得分关键点。六、逻辑算法考题(拔高必考)试题11:输出斐波那契数列前20项题目要求:斐波那契数列规则:前两项为1,从第三项开始,每一项等于前两项之和,输出前20项数值。参考答案:php

<?php

$a=1;

$b=1;

echo$a.''.$b.'';

//循环输出剩余18项

for($i=3;$i<=20;$i++){

$c=$a+$b;

echo$c.'';

$a=$b;

$b=$c;

}

?>解析:定义初始两项数值,循环叠加计算后续数值,通过变量替换迭代更新前两项数据,算法简洁高效,是面试经典算法题。试题12:判断一个数是否为素数题目要求:自定义函数,判断输入的整数是否为素数(质数),素数定义:大于1,且只能被1和自身整除的数。参考答案:php

<?php

functionisPrime($num){

//小于2不是素数

if($num<2){

returnfalse;

}

//遍历判断能否被整除

for($i=2;$i<$num;$i++){

if($num%$i==0){

returnfalse;

}

}

returntrue;

}

//测试

$n=17;

if(isPrime($n)){

echo$n.'是素数';

}else{

echo$n.'不是素数';

}

?>解析:先过滤小于2的数字,循环遍历2到数值本身前一位,存在整除情况则非素数,否则为素数,逻辑清晰,适配机考算法判断场景。七、表单与基础功能考题试题13:PHP接收GET/POST表单数据并过滤空值题目要求:编写代码接收表单提交的用户名和密码,去除首尾空格,判断不能为空,为空则提示“参数不能为空”,不为空则输出提交内容。参考答案:php

<?php

//接收并过滤数据

$username=trim($_POST['username']??'');

$pwd=trim($_POST['pwd']??'');

//校验参数

if(empty($username)||empty($pwd)){

echo'参数不能为空';

}else{

echo'用户名:'.$username.',密码:'.$pwd;

}

?>

<!--表单页面-->

<formmethod="post"action="">

用户名:<inputtype="text"name="username"><br/>

密码:<inputtype="password"name="pwd"><br/>

<buttontype="submit">提交</button>

</form>解析:使用??空合并运算符避免未定义索引报错,trim过滤空格,empty判断空值,是PHP表单处理的基础标准写法。试题14:PHP实现简单分页功能题目要求:模拟数据分页,总数据100条,每页显示10条,输出当前页码、总页数、分页跳转链接。参考答案:php

<?php

//分页参数配置

$total=100;//总数据量

$pageSize=10;//

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论