探讨PHP报错的原因和处理方法

说白了,PHP错误分为三种类型:语法错误、运行时错误、逻辑错误。
但是,从处理的角度来看,我们需要清楚地了解E_ERROR等致命错误和E_NOTICE等提示之间的区别。

我们扩展一下,先说最重要的。
去年我们做的项目有语法错误。
只需更改分号即可使其保留很长时间。
此类问题直接是由于服务器被禁用而无法执行任何操作造成的。
还有一点是运行时错误特别烦人。
例如,当3 000个用户访问时,文件权限未正确授予,整个界面崩溃。
无法在日志中分辨出哪个用户执行了此操作。
还有另一个重要的细节。
逻辑错误很难发现。
我们写回了上一个循环的状态,这使得系统每天执行预定的工作3 7 个小时。
直到检测到监控警报后才检测到。
说实话,这很尴尬。

起初我以为只添加一个try-catch就足够了,但后来我意识到这是错误的。
逻辑错误从来都不是独一无二的。
他们必须依赖代码审查。
例如,我使用PHPStan找到了3 7 小时的错误,然后我意识到静态分析是多么重要。

建议:小项目直接打开display_errors。
对于大型项目,应该使用日志+特殊处理。
但不要忘记定期使用诗篇,以避免无穷无尽的问题。

PHP :Call to undefined function posix_getpwuid()或是其他的函数没有定义

哎呀,在我开始使用该项目之前,这个功能对我来说是一个陷阱。
当时我正在CentOS服务器上从事PHP开发。
本想使用posix_getpwuid()函数获取用户信息,但是一运行就报错。
一时间让我头疼不已。
当时正是2 01 8 年,当时服务器上的PHP版本是7 .2 查资料发现这个函数是在POSIX标准中定义的。
要在 PHP 中使用它,首先必须确保安装了扩展模块。

然后我尝试在命令行中输入: yum install php-posix 。
没想到问题立刻就解决了。
我记得安装完成后Apache停止了,然后使用posix_getpwuid()就正常了。
这次活动给我留下了深刻的印象。
以后使用PHP时,记得检查是否安装了相应的扩展模块。

顺便说一句,我在Fedora用Python编写时也遇到了类似的问题。
当时想读系统配置文件,但是读不出来。
最后我发现Python缺少某个模块。
然后我想系统的这些功能和模块应该详细考察,不能忽视。
唉,当一名程序员并不容易。

为什么php会报错:未定义的函数?

致命错误是在没有声明的情况下调用该函数。

字符误读是最常见的。

版本太旧,功能缺失?升级 PHP 或寻找替代功能。

应包含各种相关文件。

include后连接时会出错,这一点很重要。

经常选工作?删除声明。

看看发生了什么。