PHP出现Warning: A non-numeric value encountered问题的原因及解决方法

本文介绍php出现Warning: A non-numeric value encountered问题,用实例分析出现这种错误的原因,并提供避免及解决问题的方法。

<?php
error_reporting(E_ALL);
ini_set(‘display_errors‘, ‘on‘);

$a = ‘123a‘;
$b = ‘b456‘;

echo $a+$b;
?>

以上代码执行后会提示 Warning: A non-numeric value encountered

查看PHP7.1官方文档,对这种错误的解释

New E_WARNING and E_NOTICE errors have been introduced when invalid strings are coerced using operators expecting numbers (+ - * / ** % << >> | & ^) or their assignment equivalents. An E_NOTICE is emitted when the string begins with a numeric value but contains trailing non-numeric characters, and an E_WARNING is emitted when the string does not contain a numeric value.

在使用(+ - * / ** % << >> | & ^) 运算时,例如a+b,如果a是开始一个数字值,但包含非数字字符(123a),b不是数字值开始时(b456),就会有A non-numeric value encountered警告。

解决方法

对于这种问题,首先应该在代码逻辑查看,为何会出现混合数值,检查哪里出错导致出现混合数值。

对于(+ - * / ** % << >> | & ^) 的运算,我们也可以加入转换类型方法,把错误的数值转换。

<?php
error_reporting(E_ALL);
ini_set(‘display_errors‘, ‘on‘);

$a = ‘123a‘;
$b = ‘b456‘;

echo intval($a)+intval($b);
?>
加入intval方法进行强制转为数值型后,可以解决警告提示问题。

原文地址:https://www.cnblogs.com/csd97/p/8309345.html

时间: 2024-10-16 17:49:25

PHP出现Warning: A non-numeric value encountered问题的原因及解决方法的相关文章

一些常见warning的原因和解决方法

在入职三周后,终于赶齐了接手项目落下两个月的项目,有了一些自己的空闲时间对项目进行整理.主要整理包括类目的整合,从原来一个系统文件夹下几百个文件整改为以MVC设计思想为原则的分文件夹整理类目,井然有序了很多,也不需要再用查找关键字来寻找想要找的类了,中间因为类目文件位置的修改而出现了很多问题.其次还包括一些代码的整合,包括一些多个类中都需要使用的代码,我们可以创建一个工具类来封装调用,或者使用一个根类来集成代码. 在做完了以上工作后,我又把关注重点放在了150多个warning之上.作为一个强迫

Android开发中遇到的问题——Android中WARNING: Application does not specify an API level requirement!的解决方法

今天在手机上调试运行Andorid项目时,发现Console打印出"WARNING: Application does not specify an API level requirement!"这样的警告信息,如下图所示: 虽然不影响项目的正常运行,不过还是要找出原因,上网查了一下出现警告的原因,原来是创建项目时AndroidManifest.xml文件中没有指定Min SDK Version 解决办法:修改AndroidManifest.xml文件,在<manifest>

Android开发中遇到的问题(四)——Android中WARNING: Application does not specify an API level requirement!的解决方法

今天在手机上调试运行Andorid项目时,发现Console打印出"WARNING: Application does not specify an API level requirement!"这样的警告信息,如下图所示: 虽然不影响项目的正常运行,不过还是要找出原因,上网查了一下出现警告的原因,原来是创建项目时AndroidManifest.xml文件中没有指定Min SDK Version 解决办法:修改AndroidManifest.xml文件,在<manifest>

关于warning: Clock skew detected. Your build may be incomplete. 的解决方法

今天发现电脑的系统时间不正确,因此将时钟进行了修改,回头编译Linux kernel的时候,提示如下的warning: warning:  Clock skew detected.  Your build may be incomplete. 第一感觉就是系统时间造成的,于是查找了一些资料,这个错误是由于系统时间比文件修改时间早造成的.通俗点说就是,现在是下午三点,而你的文件的时间戳却是下午六点的,很显然,这个是不太可能的事情,除非你能穿越. 通过如下命令解决: find . -type f |

“Error: Encountered an improper argument”的解决方法

之前遇到过的问题,后来解决后再次遇到又忘记了, 这是keil 的bug 路径只要都是字母就可以了 原文地址:https://www.cnblogs.com/jnhs/p/11956105.html

php Warning: A non-numeric value encountered 或者 Notice: A non well formed numeric value encountered

本文介绍php出现Warning: A non-numeric value encountered问题,或者 Notice:  A non well formed numeric value encountered 用实例分析出现这种错误的原因,并提供避免及解决问题的方法. <?phperror_reporting(E_ALL);ini_set('display_errors', 'on'); $a = '123a';$b = 'b456'; echo $a+$b;?>123456789以上代

关于TP5模板输出时间戳问题--A non well formed numeric value encountered

某日.因为一个项目.控制器我是这么写的 1 /** 2 * get admin/Picture/index 3 * 显示所有图册信息 4 * @return view 5 */ 6 public function index() 7 { 8 $data = $this->model->getAllPicture(); 9 10 // dump($data); 11 $this->assign('data',$data); 12 return view(); 13 } 模型我是这么写的 1

关于PHP Notice: A non well formed numeric value encountered, 你知道多少

---------------------------------------------------------------------------------------------- A non well formed numeric value encountered=> 从词面上来理解,可以大概窥探到一些意思:遇到了形成不是很好的数值 ; ok, 我们猜想可能是某个参数类型不对,需要传入数值型而实际可能是字符串. [email protected] chenwei <www.chen

PHP错误Warning: Cannot modify header information - headers already sent by解决方法

这篇文章主要介绍了PHP错误Warning: Cannot modify header information - headers already sent by解决方法,需要的朋友可以参考下 今天在测试以下代码时遇到该错误: 复制代码代码如下: session_start();$_SESSION['username']=$username;echo "<script language='javascript'>location.href='../admin.php';</sc