从PHP7.4升级到PHP8,是否可以忽略某些错误

2024-04-27

我们有一个巨大的代码库,在访问未定义的变量或数组键时,我们忽略了 php7 的通知。 例如

$somethingThatMayNotExist = $_REQUEST['somethingThatMayNotExist']

PHP8 现在会抛出错误。我知道我们应该始终检查键是否存在,或者变量是否已定义。但是代码库太大了,我们的单元测试覆盖率很差,我宁愿切换到 php8 并将这些错误作为通知处理(并将值设置为 null)。 这可以使用某种自定义错误处理程序吗?如果是这样,该怎么做?


根据 @KikoSoftware 的评论,我通过创建自定义错误处理程序解决了这个问题,并通过记录和合并它们进行重构来忽略这些类型的错误。

set_error_handler(array($this,'handleError'))

public function handleError($code, $message, $file, $line)
{
     if(str_contains($message, 'whatever errormessage should be ignored') {
            // TODO: send mail or log error somewhere for further refactoring
            return null; // php7.4-like behaviour
      }
       
      parent::handleError($code, $message, $file, $line);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从PHP7.4升级到PHP8,是否可以忽略某些错误 的相关文章

  • PHP日期时间“下周星期三”给我星期一

    我正在尝试使用以下方法获取下周星期三的日期new DateTime next week wednesday 然而 它返回2016 12 19 00 00 00 000000今天是星期一 为什么会这样呢 如何得到正确的结果 我尝试在在线 PH
  • PHP - 从图像创建一张图像

    我有 n 张图像 想用 php 代码创建一张 我使用 imagecopymerge 但无法成功 请举一些例子 Code numberOfImages 3 x 940 y 420 background imagecreatetruecolor
  • 将日期格式(在数据库或输出中)更改为 dd/mm/yyyy - PHP MySQL

    MySQL 将日期存储在我的数据库中 默认情况下 为 YYYY MM DD 我的日期的字段类型是 DATE 我不需要任何时间存储 有没有一种简单的方法可以默认更改它到 DD MM YYYY 我在两个不同的表中调用不同的日期 并且在我的任何代
  • 如何处理错误的数据类型输入

    在C 中 如何处理错误的输入 例如 如果程序要求输入一个整数 那么当您键入一个字符时 它应该能够执行某些操作 然后循环重复输入 但是当您在需要整数时输入一个字符时 循环会无限循环 反之亦然 程序进入死循环的原因是std cin由于输入失败而
  • PHP_CodeSniffer - 显示失败的嗅探

    PHP CodeSniffer 中是否有设置来显示失败的嗅探 我将输出与我们的编码标准进行比较 并且一一使用很难破译哪个测试失败 看看我们可能想忽略哪个 如果有一种简单的方法来显示故障嗅探 那么我可以更轻松 更快地完成配置 您可以使用 s
  • php postgresql pdo 从标准输入复制

    COPY table name field1 field2 field3 FROM STDIN CSV 1 2 q w 3 4 a s 5 6 d 如何通过 PDO 执行此查询 Update 问题是 PDO 驱动程序将此查询作为语句执行 例
  • PHP/PDO/MySQL:插入 MEDIUMBLOB 会存储错误数据

    我有一个简单的 PHP Web 应用程序 它通过文件上传接受图标图像并将它们存储在 MEDIUMBLOB 列中 在我的机器 Windows 和两台 Linux 服务器上 这工作得很好 在第三台 Linux 服务器上 插入的图像已损坏 在 S
  • XMLReader - 如何处理未声明的命名空间

    Merged https meta stackexchange com questions 158066 what is a merged question with 如何使用 XMLReader 读取未定义命名空间的 XML 文件 que
  • 使用 PHP 将 mysql 值转储到 JSON 文件中

    我正在尝试使用 PHP 从 mysql 数据库生成 JSON 文件 到目前为止 我有
  • MySQL 和 PHP:多关键字搜索

    我有一个包含逗号分隔关键字的字符串 例如 keywords keyword1 keyword2 keyword3 我的表架构 名为tbl address是这样的 简化的 id INT 11 PRIMARY KEY AUTO INCREMEN
  • 如何在 laravel/php 中访问该集合的内容

    我是 Laravel 的新手 正在做一个构建迷你社交网络应用程序的项目 我有一个与用户模型有关系的帖子模型 我有一个帖子页面 其中仅显示经过身份验证的用户及其朋友的帖子 在我的 PostController 中 我像这样查询经过身份验证的用
  • 通过日期选择器过滤查询后检索具有特定值的行数[重复]

    这个问题在这里已经有答案了 目前 我正在使用 CodeIgniter 来检索特定时间范围内的数据 所有这些条目都有一个状态 我想将具有相同状态的所有条目分组并将其显示在各自的标题中 目前 这是我的模型类 其中我有以下条目来返回特定日期范围内
  • 在php中的字符串数组中查找字符串的开头[重复]

    这个问题在这里已经有答案了 我知道我们有 php in array 函数 但我正在寻找一种方法来查找以特定字符串开头的字符串数组中的值 例如找到 search string div 1 div 在这样的数组中 array sample gt
  • PHP: $arr['key'] 上的 is_array 不存在 'key'

    我的一所大学似乎在我编写的代码中存在 未定义索引 错误 我的这段代码如下所示 if is array arr key 我的目的是检查 arr 是否有一个名为 key 的键 以及该键的值是否是数组本身 我应该这样做吗 if isset arr
  • PHP json_encode 将多个数组编码为一个对象

    我试图在一个 JSON 对象中返回多个数组 但在语法上遇到一些困难 一款 Android 应用程序从多个表接收更新 我希望在一个响应中返回这些更新 目前 这就是我对各种结果集进行编码的方式 json json encode array ta
  • 如何使用来自数据库的值来定义 Twig 模板的全局变量?

    我想为 twig 定义一个全局变量 可以从任何模板访问它 我可以在 symfony 中创建一个全局变量config packages twig yaml 但我需要它是从数据库获取的值 在 twig 的文档中 它说使用此代码 twig new
  • 如何使用 PHP SoapClient 添加任意命名空间?

    如何使用 PHP SoapClient 添加任意名称空间 命名空间实际上并未在请求中使用 但我认为它阻止了我的消息被正确使用 WSDL 在这里 http abr business gov au abrxmlsearchRPC ABRXMLS
  • mysqli_connect(): (HY000/2002): 无法建立连接,因为目标机器主动拒绝

    我知道有很多这样的问题 但我没有找到任何解决方案 我尝试过的事情 检查防火墙 重新启动我的电脑和 Apache 服务器 重新启动MYSQL 检查了我的代码 尝试了我所知道的和在互联网上找到的一切 这是我的代码
  • 如何在 Api-Platform 中按链接属性过滤结果?

    我有一个User实体和一个Organisation实体 存在关系ManyToOne之间Booking and User ORM ManyToOne targetEntity App Entity User inversedBy bookin
  • 通过“SELECT”命令选择每组的前两条记录的最佳方法是什么?

    例如我有下表 id group data 1 1 aaa 2 1 aaa 3 2 aaa 4 2 aaa 5 2 aaa 6 3 aaa 7 3 aaa 8 3 aaa 通过 SELECT 命令选择每组的前两条记录的最佳方法是什么 如果没有

随机推荐

  • 为什么我的 QGestureRecognizer 收不到触摸事件?

    上下文 我正在尝试创建一个类似推子的小部件 它可以在同一视图中具有多个实例 每个实例都可以由不同的手指同时控制 我想用Qt的手势识别系统 http qt project org doc qt 4 8 gestures overview ht
  • Ruby 将不可打印的字符转换为数字

    我有一个包含不可打印字符的字符串 我目前正在做的是将它们替换为波浪号 使用 string gsub print 但是 我实际上想将它们转换为整数值 我尝试了这个 但它总是输出0 string gsub print 1 to i 想法 字符串
  • 允许远程连接到不同域中的 SQL Server 的防火墙规则

    我最近安装了SQL Server Express 2014在一系列运行 Windows Server 2012 的计算机上 总共七台计算机 除 1 人外 其余所有人都住在同一个地方local domain company local 一台流
  • PHP 脚本语言还是编程语言? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我一直不明白为什么PHP被称为 脚本语言 而不是 编程语言 我将自己介绍为 PHP 程序员 是错误的吗 我应该是 PHP 脚本编写者 吗 编程语言和脚
  • IIS 7.5:对网站的初始请求永远不会加载

    当我第一次浏览我的网站时 互联网不断旋转 加载 如果我两秒钟后尝试再次加载它 一切都会正常 就好像它 睡着了 一样 我想这一定和 回收 有关 我已将 空闲超时 设置为 0 将回收 定期时间间隔 设置为 0 在浏览我的网站之前 我查看了 工作
  • excel vba 将 system.collections.hashmap 导入模块

    从我的内心微软 Excel 2010安装我已经打开了Visual Basic 编辑器 选项卡开发工具 gt Visual Basic 在 的里面Visual Basic 编辑器我右键单击进入项目窗口并创建了一个module 插入 gt 模块
  • Rspec 控制器错误需要 <"index"> 但使用 <""> 渲染

    作为测试新手 我正在努力让一些控制器测试通过 以下控制器测试会引发错误 expecting lt index gt but rendering with lt gt 我的控制器规格之一具有以下内容 require spec helper d
  • Android AudioRecord 与 MediaRecorder 录制音频

    我想在我的 Android 手机上录制人声 我注意到 Android 有两个类可以做到这一点 录音带 http developer android com reference android media AudioRecord html a
  • SlideToggle() 可以检测 SlideUp 或 SlideDown 吗?

    I know hover 默认设置为handIn and handOut 但是我能检测到吗slideUp and SlideDown inside SlideToggle 有这样的代码 divName slideToggle functio
  • scala.Equals 特征中的 canEqual()

    从源代码来看scala Equals scala here https github com scala scala blob 2 11 x src library scala Equals scala package scala trai
  • 在 JavaScript 中使用正则表达式验证信用卡输入

    我一直在努力完成这件事但没有成功 我正在使用正则表达式根据通过单选按钮选择的信用卡类型来验证用户输入的信用卡号 但我一直保持警惕if陈述 看起来所有的if else语句经过测试 There is the HTML code fragment
  • 在 VsCode 中使用 Windows 文件对话框打开文件/文件夹

    当我尝试在 VsCode 中打开文件或文件夹时 Windows 文件对话框未打开 相反 VsCode 的顶部中间会出现一个框来打开文件 文件夹 如何再次使用 Windows 文件对话框 Windows 文件对话框默认打开文件 文件夹 但不知
  • 编译器如何解析在变长数组之后声明的变量的地址?

    假设我有以下函数 它使用可变长度数组 void func int size int var1 int arr size int var2 编译器如何确定地址var2 我能想到的唯一方法就是放置arr after var1 and var2
  • 将一个元素移到数组末尾

    我有一个包含 parank 值列表的数组 考虑下面的数组 Array 0 gt stdClass Object pagerank gt 3 1 gt stdClass Object pagerank gt 1 2 gt stdClass O
  • 可以用MongoDB做一个关系型数据库吗?

    我将使用 MongoDB 制作一个学生管理系统 我将为学生准备一张桌子 另一张用于记录出勤记录 我可以使用出勤表中的钥匙来访问学生表吗 如下图所示 如何 MongoDB 背后的想法是消除 或至少最小化 关系数据 您是否考虑过将出勤数据直接嵌
  • 获取矩阵条目的排名?

    假设一个矩阵 gt a lt matrix c 100 90 80 20 2 2 gt a 1 2 1 100 80 2 90 20 假设我想将矩阵的元素转换为等级 gt rank a lt rank a gt rank a 1 4 3 2
  • 比较ios中的两个时间值? [复制]

    这个问题在这里已经有答案了 在我的应用程序中 我想检查当前时间是在变量中保存的时间之前还是之后 就像我的时间1一样time1 08 15 12 我的时间2是time2 18 12 8 所以我想比较 time1 和 time2 目前这些变量是
  • 即使设置了 cookie,RabbitMQ 身份验证也会失败

    我最近在运行 lattePanda 的 Windows 10 上安装了带有 ErlanOTP 的rabbitmq 我运行rabbitmqctl status并收到以下错误 C Program Files RabbitMQ Server ra
  • 如何在 Symfony 4 表单的输入上添加占位符?

    在我的 Symfony 4 表单中 我尝试为我的输入获取占位符 我尝试了以下操作 但收到错误消息 表明这是不允许的 有什么想法我还能如何实现这一目标吗 gt add firstname TextType class label gt Vor
  • 从PHP7.4升级到PHP8,是否可以忽略某些错误

    我们有一个巨大的代码库 在访问未定义的变量或数组键时 我们忽略了 php7 的通知 例如 somethingThatMayNotExist REQUEST somethingThatMayNotExist PHP8 现在会抛出错误 我知道我