老项目从php5.5升级至7.1,发现dd方法(包括dump 方法)使用时会产生一个NOTICE级别的错误:
A non well formed numeric value encountered

具体错误的地方是:

vendor\symfony\var-dumper\Cloner\VarCloner.php(298)

原因是因为php7.0以后,十六进制的字串不再被认为是数字。官方的RFC在此:

https://wiki.php.net/rfc/remove_hex_support_in_numeric_strings

可以看下面的demo

<?php
var_dump("0x123" == "291");
var_dump(is_numeric("0x123"));
var_dump("0xe" + "0x1");
var_dump(substr("foo", "0x1"));PHP5输出:bool(true)
bool(true)
int(15)
string(2) "oo"PHP7输出:bool(false)
bool(false)
int(0)
Notice: A non well formed numeric value encountered in /tmp/test.php on line 5
string(3) "foo"

OK,原因理清楚了,讲一下解决方法:
1. 因为只是NOTICE级别,直接使用@符号抑制错误提示即可。
2. 数据类型强转

 private static function initHashMask()
{$obj = (object) array();self::$hashOffset = 16 - PHP_INT_SIZE;self::$hashMask = -1;if (defined('HHVM_VERSION')) {self::$hashOffset += 16;} else {// check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below$obFuncs = array('ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush');foreach (debug_backtrace(PHP_VERSION_ID >= 50400 ? DEBUG_BACKTRACE_IGNORE_ARGS : false) as $frame) {if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && in_array($frame['function'], $obFuncs)) {$frame['line'] = 0;break;}}if (!empty($frame['line'])) {ob_start();debug_zval_dump($obj);self::$hashMask =substr(ob_get_clean(), 17);}}self::$hashMask ^= hexdec(substr(spl_object_hash($obj), self::$hashOffset, PHP_INT_SIZE));
}

对这一行处理,强转成int类型即可。
self::$hashMask = (int)substr(ob_get_clean(), 17);

Laravel5.1 组件 Symfony/var-dumper2.7 在php7下的问题相关推荐

  1. 组件服务-计算机-我的电脑出现红色向下箭头的解决办法

    组件服务-计算机-我的电脑出现红色向下箭头的解决办法 2007-08-18 01:06 在"服务"里找到这三个服务,都启动就行了 Distributed Transaction C ...

  2. ckeditor4 自定义组件之文字格式组件,类加粗,类下划线(vue项目)

    先看效果: ckeditor4自定义组件官方文档中有两种,第一种是点按钮增加内容,别的文章都能搜到:第二种是点按钮出现弹窗,设置弹窗内容,然后点确定,这种也能搜到,在官方文档中也有.但是我的需求是给文 ...

  3. 如何创建一个MVC模式的Joomla组件教程(九) 使用数据库下

    你可能看到了表的前缀非常奇怪.Joomla将替换这个前缀,用安装时候指定的内容.对于通常的安装,这个表名将是jos_hello,这样可以多个安装使用一个数据库,并且能够避免表名冲突. 表中有两个字段, ...

  4. 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( DEX 文件准备 | 拷贝资源目录下的文件到内置存储区 | 配置清单文件 | 启动 DEX 文件中的组件 | 执行结果 )

    文章目录 一.DEX 字节码文件准备 二.拷贝 Assets 目录下的 classes2.dex 字节码文件到内置存储区 三.在 AndroidManifest.xml 清单文件中配置组件 四.启动 ...

  5. 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. html用vue传递数据,Vue组件及数据传递详解

    本文我们就和大家详细介绍一下Vue系列(三):组件及数据传递.路由.单文件组件.vue-cli脚手架,希望能帮助到大家. 一. 组件component 1. 什么是组件?组件(Component)是 ...

  7. 深刻理解Vue中的组件

    今天看了下Vue官网上关于组件的教程,感觉内容还挺多,现在把组件中基本的知识梳理一下. 组件的基本使用 注册组件 注册组件就是利用Vue.component()方法,先传入一个自定义组件的名字,然后传 ...

  8. 【Vue.js 牛刀小试】:第九章 - 组件基础再探(data、props)

    系列目录地址 一.基础知识概览 第一章 - 一些基础概念(posted at 2018-10-31) 第二章 - 常见的指令的使用(posted at 2018-11-01) 第三章 - 事件修饰符的 ...

  9. angularjs1访问子组件_vue 组件通信看这篇就够了(12种通信方式)

    vue 组件间的通信是 vue 开发中很基础也十分重要的部分,作为使用 vue 的开发者每天都在使用.同时,vue 通信也是面试中非常高频的问题,有很多面试题,都是围绕通信展开. 本文会介绍常见的通信 ...

  10. LIST组件使用总结

    第一节.首先,看看是如何将数据添加进LIST组件中,以及如何显示鼠标点击的对象. 1.静态生成方法: my_list.addItem("labe"l,data); 实例:新建文件, ...

最新文章

  1. 程序员,什么是高手?什么是低手?
  2. 学计算机等级考试电脑版软件,计算机二级考试宝典电脑版
  3. spock测试_将Spock 1.3测试迁移到Spock 2.0
  4. android studio发布项目到github
  5. MyEclipse 2014下搭建Android开发环境
  6. Python学习笔记day10
  7. Spring Boot官方文档笔记
  8. #图# #SPFA# ----- codevs1021 玛丽卡
  9. 使用Java中面向对象的思想来实现两个人的一场战斗
  10. SSIM公式:结构相似性计算原理,基于SSIM的图像质量评价
  11. 2007年日历带农历表_2007年日历表,2007年农历表(阴历阳历节日对照表)
  12. 国有银行信息科技岗笔试内容
  13. 浅析ERP系统--人资
  14. 用pandas进行数据分析实战
  15. android文件删除工具下载,Coolmuster Android Cleaner下载
  16. C# 绘制直角坐标系
  17. KeyShot 11 Pro for Mac(3D渲染和动画制作) V11.3.2.2中文安装+更新内容
  18. 放大后字体变形的一点思考
  19. QT 自定义加载等待(Loading)提示框
  20. 画了张图,总结了机房里AAU、RRU以及各模块之间的走线关系和线束规格类型

热门文章

  1. Atom配置markdown
  2. 怎么篡改网站html文件,首页被篡改-当我打开网页时,总是被其他网页给篡改了,我该怎么办? 爱问知识人...
  3. 绝对值函数可导点的判断
  4. 解决span标签之间的空隙问题
  5. 2020年十七届华为杯数学建模比赛记录
  6. java实现浏览器下载excel文件
  7. 【光通信】单模与多模区别
  8. python爬虫监控平台_scrapy-monitor,实现爬虫可视化,监控实时状态
  9. Kerberos基础及KDC服务(理论知识)
  10. Chmox - Mac下的CHM电子书阅读器