返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP程序员解决的问题有哪些
  • 329
分享到

PHP程序员解决的问题有哪些

2023-06-04 07:06:26 329人浏览 安东尼
摘要

这篇文章主要介绍“PHP程序员解决的问题有哪些”,在日常操作中,相信很多人在php程序员解决的问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP程序员解决的问题有哪些”的疑惑有所帮助!接下来,请跟

这篇文章主要介绍“PHP程序员解决的问题有哪些”,在日常操作中,相信很多人在php程序员解决的问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP程序员解决的问题有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Lv0 查看PHP错误信息

程序没有达到预期效果,证明代码出错了,看PHP的错误信息是第一步。如果直接忽略错误信息,表明这个人不适合担任专业的程序员岗位。有些情况下 php.ini配置中关闭了错误显示,需要修改php.ini打开错误信息,或者错误信息被导出到了日志文件,这种情况可以直接tailf php_error.log来看错误信息。

拿到错误信息后直接定位到程序代码问题,或者到Google/百度搜索,即可解决问题。

注:打开错误显示的方法是

php.ini中display_errors / display_startup_errors 设置为On

php.ini中error_reporting 设置为E_ALL

PHP代码中设置error_reporting(E_ALL)

Lv1 存在多个版本的php或php-cli与php-fpm加载不同的配置

存在多个版本的php,懂得通过which php来看是哪个PHP,或者加绝对路径制定php版本。表示此PHPer通过了此层级的50%考验。

另外一个情况就是php-cli与php-fpm得到的执行情况不一样,如在WEB浏览器中执行是对的,cli下执行是错的。这时候可能是2个环境 加载的php.ini不同所致。cli下通过php -i |grep php.ini得到加载了哪个php.ini。而fpm下通过phpinfo()函数可以得到php.ini的绝对路径。

Lv2 var_dump/die打印变量值信息单步调试

这是惯用的程序调试手段,也是最简单粗暴有效的解决问题方法。高级一点的手段是使用PHP的Trace类/日志类,花哨一点的可以借助phpstORM+xdebug在IDE工具里进行Debug。

Trace工具还可以分析脚本的耗时,进行PHP代码的性能优化

这3个考验全部通过,表明此程序员已经具备了专业PHP程序员应该有的解决问题能力了。PHP程序员只要过了这个等级,就足以应多大部分情况,在中小型网站中毫无压力。

Lv3 使用strace工具跟踪程序执行

strace可以用来查看系统调用的执行,使用strace php test.php,或者strace -p 进程ID。strace就可以帮助你透过现象看本质,掌握程序执行的过程。这个手段是在大型网站,大公司里最常用的。如果没掌握strace,这里只能说 抱歉了,我们不接受不会strace的PHPer。

strace其实也是对程序员基础的考验,如果不懂操作操作系统,完全不懂底层,肯定也达不到会用strace的程度。当然strace对于PHP源码里的死循环是解决不了的。比如你发现一个php-fpm进程CPU100%了,strace恐怕是解决不了的。因为strace是看系统调用,一般都 是io类操作,既然是IO密集,那CPU一定不可能是100%。

Lv4 使用tcpdump工具分析网络通信过程

tcpdump可以抓到网卡的数据通信过程,甚至数据内容也可以抓到。使用tcpdump可以看到网络通信过程是什么样的,如何时发起了TCP SYN3次握手,何时发送FIN包,何时发送RST包。这是一个基本功,如果不懂tcpdump,证明不具备网络问题解决能力。

Lv5 统计函数调用的耗时和成功率

使用xhporf/xdebug导出PHP请求的调用过程,然后分析每个函数调用的过程和耗时。能够分析PHP程序的性能瓶颈,找出可以优化的点。

另外一个对于网络服务的调用,如mysql查询,curl,其他api调用等,通过记录起始和结束时microtime,返回的是不是false, 可以得到调用是否成功,耗时多少。如果可以汇总数据,整理出调用的成功率,失败率,平均延时,证明此程序员对接口质量敏感,有大型网站项目经验。

Lv6 gdb使用

gdb是C/C++调试程序的利器,需要具备一定C/c++功底的程序员才会能熟练使用gdb。上面说的strace无法跟踪php程序CPU100%,而gdb是可以跟踪的。另外gdb也可以解决php程序core dump的问题。

通过gdb -p 进程ID,再配合php-src的.gdbinit zbacktrace等工具,可以很方便地跟踪PHP程序的执行。像上面的CPU100%往往是PHP程序中发生死循环了,gdb进行多次查看,就大致可 以得到死循环的位置。具备gdb解决问题能力的PHP程序员少之又少。如果能使用gdb解决PHP问题,这个PHPer百分之百可以通过面试,并且可以拿 到较高的技术评级。

Lv7 查看PHP内核和扩展源码

如果能熟悉PHP内核和扩展的源码,遇到PHP程序中最复杂的内存错误,也可以有解决的能力。这类PHP程序员就是凤毛麟角了。配合gdb工具和对PHP源码的熟悉,可以查看opcode的信息,execute_data的内存,全局变量的状态等。

到此,关于“PHP程序员解决的问题有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: PHP程序员解决的问题有哪些

本文链接: https://lsjlt.com/news/236853.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP程序员解决的问题有哪些
    这篇文章主要介绍“PHP程序员解决的问题有哪些”,在日常操作中,相信很多人在PHP程序员解决的问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP程序员解决的问题有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-04
  • Python程序员常见的问题有哪些
    这篇文章主要讲解了“Python程序员常见的问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python程序员常见的问题有哪些”吧!语用错误让我们从基础开始,从那些刚学习编程的人钻研...
    99+
    2023-06-27
  • PHP程序员面试题目有哪些
    这篇文章主要介绍“PHP程序员面试题目有哪些”,在日常操作中,相信很多人在PHP程序员面试题目有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP程序员面试题目有哪些”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-04
  • PHP程序员遇到问题的冷门知识点有哪些
    这期内容当中小编将会给大家带来有关PHP程序员遇到问题的冷门知识点有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。有些时候我们习惯了主流的方法,每一步都按部就班的写代码,殊不知,我们可能会遗漏一些好的...
    99+
    2023-06-04
  • Java程序员比较关心的问题有哪些
    本篇内容介绍了“Java程序员比较关心的问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Question1:我是双非/三本/专科学校...
    99+
    2023-06-19
  • Java程序员面试题有哪些
    这篇文章主要介绍了Java程序员面试题有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java程序员面试题有哪些文章都会有所收获,下面我们一起来看看吧。一、开场白简单的介绍一下自己的工作经历与职责,在校或者...
    99+
    2023-06-16
  • Javascript程序员面试试题有哪些
    这篇文章将为大家详细讲解有关Javascript程序员面试试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。闭包:function fun(n,o)&nb...
    99+
    2024-04-02
  • Python logging 模块:程序员的宝典,解决所有问题
    1. 模块概述 logging 模块提供了一个标准化且灵活的接口,用于记录应用程序事件。它支持分级日志记录、格式化日志消息、以及通过各种处理程序(如控制台输出或文件写入)输出日志。通过利用 logging 模块,程序员可以轻松地添加日志记...
    99+
    2024-03-06
    Python logging 模块、程序调试、错误记录、日志级别
  • 开发医美小程序能解决的问题有哪些
    这篇文章主要介绍了开发医美小程序能解决的问题有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇开发医美小程序能解决的问题有哪些文章都会有所收获,下面我们一起来看看吧。 1. 降低成本,建立推广品牌 降低推广成...
    99+
    2023-06-27
  • web前端程序员面试问题及答案有哪些
    这篇文章主要介绍“web前端程序员面试问题及答案有哪些”,在日常操作中,相信很多人在web前端程序员面试问题及答案有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web前端程序员面试问题及答案有哪些”的疑...
    99+
    2023-06-27
  • Android开发程序员的面试题有哪些
    这篇“Android开发程序员的面试题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android开发程序员的面试题有...
    99+
    2023-06-27
  • 教育小程序能解决哪些问题
    这篇文章主要为大家展示了“教育小程序能解决哪些问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“教育小程序能解决哪些问题”这篇文章吧。1、招生困难无论是线上还是线下推广,教育行业竞争程度加深将导...
    99+
    2023-06-02
  • 开发小程序的问题有哪些
    这篇文章主要介绍“开发小程序的问题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“开发小程序的问题有哪些”文章能帮助大家解决问题。如何开发小程序?目前,主要有两种方法。 一种方法是自己开发,另一...
    99+
    2023-06-27
  • PHP程序员的简单运维技术有哪些
    本篇内容介绍了“PHP程序员的简单运维技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、linux系统基础命令和Windows S...
    99+
    2023-06-17
  • 家电维修开发小程序能解决的问题有哪些
    本文小编为大家详细介绍“家电维修开发小程序能解决的问题有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“家电维修开发小程序能解决的问题有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。解决问题一:局限性传统...
    99+
    2023-06-27
  • Flex程序员的境界有哪些
    这篇文章主要介绍了Flex程序员的境界有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Flex程序员的四重境界以前见过一些文章描述Flex程序员的层次、水准、特征等等内容...
    99+
    2023-06-17
  • Java 程序员必须掌握的 LeetCode 题目有哪些?
    作为一个 Java 程序员,掌握算法和数据结构是非常重要的。而 LeetCode 是一个非常好的平台,可以帮助我们练习算法和数据结构。在这篇文章中,我们将介绍 Java 程序员必须掌握的一些 LeetCode 题目,并且演示一下相应的代码...
    99+
    2023-08-21
    leetcode windows unix
  • mpvue开发小程序遇到的问题有哪些及怎么解决
    本篇内容介绍了“mpvue开发小程序遇到的问题有哪些及怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!项目结构 |---bu...
    99+
    2023-06-26
  • C++程序员应聘常见面试题有哪些
    本篇内容主要讲解“C++程序员应聘常见面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++程序员应聘常见面试题有哪些”吧!试题1:以下是引用片段:  void&n...
    99+
    2023-06-17
  • Java程序员集合框架面试题有哪些
    本篇内容主要讲解“Java程序员集合框架面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java程序员集合框架面试题有哪些”吧!1、 什么是Java集合APIJava集合框架API是用...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作