0

0

php面试题分享(正在找工作的朋友有福了)

php中文网

php中文网

发布时间:2016-07-25 09:04:40

|

1726人浏览过

|

来源于php中文网

原创

  1. $tmp = 0 == "a"? 1: 2;
  2. echo $tmp;
  3. ?>
复制代码

结果 1 int和string类型强制转换造成的,0==="a"

0 == 0 肯定是true啊 PHP是弱类型。。 $tmp = 0 === "a"? 1: 2; echo $tmp; 这样就是2

4. 已知一个字符串如下: $str = "1109063 milo 1"; 用一行代码将该字符串里面的1109063赋值给$uid, milo赋值给$user, 1赋值给$type 空格如下 list($uid, $user, $type) = explode(" ", $str); \t如下 list($uid, $user, $type) = explode("\t", $str); list($uid, $user, $type) = sscanf($str, "%d %s %d"); $n = sscanf($auth, "%d\t%s %s", $id, $first, $last);

5. 分别列出如下类型的有符号和无符号范围 TINYINT SMALLINT MEDIUMINT INT TINYINT-2^7 - 2^7-10 ~ 2^8-1 SMALLINT-2^15 - 2^15-1 0 ~ 2^16-1 MEDIUMINT-2^23 - 2^23-1 0 ~ 2^24-1 INT-2^31 - 2^31-1 0 ~ 2^32-1

6. 将下面的数组用一行拼装成一个字符串i am milo! day day up!

  1. $arr = array(
  2. 'I', 'AM', 'MILO!', 'DAY', 'DAY', 'UP!'
  3. );
  4. ?>
  5. $str = strtolower(implode(" ",$arr));
复制代码

7. 调用如下函数获取函数并获取count的值

  1. function get_list($cnd = array(), &$count = false)
  2. {
  3. // 伪代码 处理$cnd 并赋值datas
  4. $datas = 'i am call back';
  5. $count && $count = rand(1, 10000);
  6. return $datas;
  7. }
  8. ?>
  9. $count=1;
  10. $data = get_list($cnd,&$count);
  11. echo $count;
复制代码

8. 几种方式去取代session机制, 简单描述各自的优劣 mysql、memcache、cookie保持一种唯一状态标识码

9. 下列HTTP状态码出现的可能原因, 如何处理 200, 301, 404, 502, 503 200 请求已成功,请求所希望的响应头或数据体将随此响应返回。 301 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。   新的永久性的 URI 应当在响应的 Location 域中返回。除非这是一个 HEAD 请求,否则响应的实体中应当包含指向新的 URI 的超链接及简短说明。   如果这不是一个 GET 或者 HEAD 请求,因此浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。

注意:对于某些使用 HTTP/1.0 协议的浏览器,当它们发送的 POST 请求得到了一个301响应的话,接下来的重定向请求将会变成 GET 方式。

404   请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。 502   作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。 503   由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用以标明这个延迟时间。如果没有给出这个 Retry-After 信息,那么客户端应当以处理500响应的方式处理它。   注意:503状态码的存在并不意味着服务器在过载的时候必须使用它。某些服务器只不过是希望拒绝客户端的连接。

200 OK 一切正常,对GET和POST请求的应答文档跟在后面。 301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL 404 Not Found 无法找到指定位置的资源。这也是一个常用的应答。 502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。 503 Service Unavailable 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。

10. 有如下数据库, 用原生态mysql扩展去连接并查询user表的前十行 host: 192.168.0.254 port: 3306 user: one pass: piece database: db_user table: user

  1. $link = mysql_connect("192.168.0.254:3306","one","piece") or die('Could not connect: '.mysql_error());
  2. mysql_select_db('db_user',$link);
  3. $query = mysql_query("select * from user limit 10");
  4. while($rs = mysql_fetch_array($query,MYSQL_ASSOC))
  5. {}
复制代码

11. 用autoload($class) 实现Lib目录下的类的自动加载并可以兼容子目录

  1. $request->action = lcfirst(implode(array_map(

  2. 'ucfirst',
  3. explode('-', strtolower($request->action))
  4. )));
  5. ------------------------------------------------
  6. function __autoload($class)
  7. {
  8. $cls = strtolower(str_replace("_","/",$class));
  9. if(file_exsits(LIB.$cls.'.php'))
  10. {
  11. include_once(LIB.$cls.'.php');
  12. }
  13. else
  14. {
  15. die("not found {$class} class");
  16. }
  17. }
  18. defined("LIB",'/data/wwwroot/www.xx.com/lib/');
  19. $author = new Lib_Author();
  20. -----------------------------------------------------------
  21. function __authload($class)
  22. {
  23. $cls = explode("_",$class);
  24. if(@is_dir($cls[1]))
  25. {
  26. if(@is_file($cls[2]))
  27. {
  28. include_once("CON_PATH".$cls[1].'/'.$cls[2].".php");
  29. }
  30. else
  31. {
  32. dir('error');
  33. }
  34. }
  35. else if(@is_file($cls[1].".php"))
  36. {
  37. include_once("CON_PATH".$cls[1].".php");
  38. }
  39. else
  40. {
  41. dir('error');
  42. }
  43. }
  44. ---------------------------------------
  45. function __autoload($class)
  46. {
  47. $cls = explode("_",$class);
  48. $file = get_file($cls);
  49. if($file=='error')
  50. {
  51. die('error');
  52. }
  53. include_once($file);
  54. }
  55. function get_file($dir)
  56. {
  57. if(is_array($dir))
  58. {
  59. foreach($dir as $k=>$v)
  60. {
  61. $tmpdir .= $v.'/';
  62. if(is_dir('CON_PATH'.$tmpdir))
  63. {
  64. continue();
  65. }
  66. else if(is_file('CON_PATH'.$tmpdir.".php"))
  67. {
  68. return 'CON_PATH'.$tmpdir.".php";
  69. }
  70. else
  71. {
  72. return 'error';
  73. }
  74. }
  75. return 'error';
  76. }
  77. return 'error';
  78. }
  79. defined("CON_PATH","/data/wwwroot/www.xx.com/app/cntroller/");

  80. $sb = new controller_sb();
  81. ------------------------------------
  82. function __autoload_my_classes($classname)
  83. {
  84. # ... your logic to include classes here
  85. }
  86. spl_autoload_register('__autoload_my_classes');
  87. -----------------------------------------------------------

    立即学习PHP免费学习笔记(深入)”;

    阿里云AI平台
    阿里云AI平台

    阿里云AI平台

    下载
复制代码

12. 用set_error_handle 去捕获错误并输出, 级别自己定

  1. set_error_handle(callback,level)

  2. function callback(int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] ){
  3. }
  4. function dealErrorHandler($errno,$errstr,$errfile,$errline)

  5. {
  6. switch($errno){
  7. case E_USER_ERROR:
  8. echo "error [$errno] $errstr fatal error on line $errline in file $errfile";
  9. break;
  10. case E_USER_WARNING:
  11. echo "my warning [$errno] $errstr":
  12. break;
  13. case E_USER_NOTICE:
  14. echo "my notice[$errno] $errstr";
  15. break;
  16. default:
  17. echo "unkonwn error type :[$errno] $errstr";
  18. break;
  19. }
  20. }
  21. set_erro_handler(dealErrorHandler);
  22. trigger_error("notice", E_USER_NOTICE);

  23. trigger_error("warning", E_USER_WARNING);
  24. trigger_error("error", E_USER_ERROR);
复制代码

13. 简述两种屏蔽php程序的notice警告的方法 初始化变量,文件开始设置错误级别或者修改php.ini 设置error_reporting set_error_handler 和 @抑制错误

1.在程序中添加:error_reporting (E_ALL & ~E_NOTICE); 2.或者修改php.ini中的:error_reporting = E_ALL 改为:error_reporting = E_ALL & ~E_NOTICE 3.error_reporting(0);或者修改php.inidisplay_errors=Off 1 2 3 4 下一页 尾页



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

46

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

178

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

51

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

92

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

227

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

532

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

171

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号