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

用实例分析出现这种错误的原因,并提供避免及解决问题的方法。

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

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

echo $a+$b;
?>
1
2
3
4
5
6
7
8
9
以上代码执行后会提示 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);
?>
1
2
3
4
5
6
7
8
9
加入intval方法进行强制转为数值型后,可以解决警告提示问题。
还有一种方法修改php.ini配置级别

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING

原文地址:https://www.cnblogs.com/matengfei123/p/12343665.html

时间: 2024-10-25 09:54:28

php Warning: A non-numeric value encountered 或者 Notice: A non well formed numeric value encountered的相关文章

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

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

关于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

php7.0 和 php7.1新特性

PHP7.1 新特性 1.可为空(Nullable)类型 类型现在允许为空,当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null .可以通过在类型前面加上一个问号来使之成为可为空的. function test(?string $name) { var_dump($name); } 以上例程会输出: string(5) "tpunt" NULL Uncaught Error: Too few arguments to function test(), 0 p

PHP特性整合(PHP5.X到PHP7.1.x)

Buid-in web server内置了一个简单的Web服务器 把当前目录作为Root Document只需要这条命令即可: php -S localhost:3300 也可以指定其它路径 php -S localhost:3300 -t /path/to/root 还可以指定路由 php -S localhost:3300 router.php 命名空间(php5.3) 命名空间的分隔符为反斜杆\ namespace fox\lanmps\Table; class Select {} 获取完

浅析PHP7新功能及语法变化总结

标量类型声明 有两种模式: 强制 (默认) 和 严格模式. 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool).在旧版中,函数的参数声明只能是(Array $arr).(CLassName $obj)等,基本类型比如Int,String等是不能够被声明的 <?php function check(int $bool){ var_dump($bool); } check(1); check(tr

PHP 7 测试用例(转)

性能改善:PHP 7高达两倍快的PHP 5.6 显著减少内存使用 抽象语法树 一致的64位支持 改进的异常层次结构 许多转化为异常致命错误 安全随机数发生器 删除旧的和不支持的SAPIs和扩展 空合并运算符(?) 返回和标量类型声明 匿名类 零成本断言 1 .测试用例一: 生成五十万个数组,并查询五十万次 key 是否存在 <?php $a = array(); for($i=0;$i<500000;$i++){ $a[$i] = $i; } foreach($a as $i) { array

R语言中的logical(0)和numeric(0)以及赋值问题

logical(0) 不等于 numeric(0).两者都不等于NULL值,即is.null(logical(0))和is.null(numeric(0))返还值都是FALSE.这很有意思,说明长度为零的值有时却不会别算为空值,但空值的定义却是函数中没有被赋值的参数,特征就是没有值.如何区分NULL和NA?很简单,后者的logical length是1,而前者的logical length是0,意思是假如用is.logical判断NA的逻辑值,得到的结果是TRUE.NA可以为正无穷或负无穷,但N

YASM User Manual

This document is the user manual for the Yasm assembler. It is intended as both an introduction and a general-purpose reference for all Yasm users. 1.?Introduction Yasm is a BSD-licensed assembler that is designed from the ground up to allow for mult

ORA_ERROR大全

转自:http://blog.csdn.net/haiross/article/details/12839229 常见错误:-60 ORA00060: deadlock detected while waiting for resource 一般错误:  - 1 ORA00001: unique constraint (.) violated  -17 ORA00017: session requested to set trace event  -18 ORA00018: maximum nu