This article introduces the Warning: A non-numeric value encountered problem in PHP. It uses examples to analyze the reasons for this error and provides methods to avoid and solve the problem.
<?phperror_reporting(E_ALL); ini_set('display_errors', 'on');$a = '123a';$b = 'b456';echo $a+$b;?>
After the above code is executed, it will prompt Warning: A non-numeric value encountered
Check the official PHP7.1 documentation for an explanation of this error
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.
In use ( - * / * * % << >> | & ^) When operating, such as a b, if a starts a numeric value but contains non-numeric characters (123a), and b does not start a numeric value (b456), there will be A non-numeric value encountered warning.
Solution
For this kind of problem, you should first check the code logic to see why mixed values appear and check where the error occurred. Resulting in mixed values.
For the operation of ( - * / ** % << >> | & ^), we can also add a conversion type method to convert the wrong value.
<?phperror_reporting(E_ALL); ini_set('display_errors', 'on');$a = '123a';$b = 'b456';echo intval($a)+intval($b);?>
After adding the intval method to force conversion to numeric type, the warning problem can be solved.
This article explains the reasons and solutions for the Warning: A non-numeric value encountered problem in PHP. For more related content, please pay attention to the PHP Chinese website.
Related recommendations:
How to use mysql to execute sql in the terminal and write the results to a file
Compare through mysql Methods for two database table structures
Explain how to use mysql binlog
The above is the detailed content of Explain the causes and solutions to the Warning: A non-numeric value encountered problem in PHP. For more information, please follow other related articles on the PHP Chinese website!