为什么这些报错?

为什么这些报错?

1+'3king';

结果:Notice: A non well formed numeric value encountered in D:\code\first\first类型转换.php on line 15
4

echo 1+'21a3b4c';

结果:Notice: A non well formed numeric value encountered in D:\code\first\first类型转换.php on line 17
22

echo 1+'2e2a3c';

结果:Notice: A non well formed numeric value encountered in D:\code\first\first类型转换.php on line 19
201


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
guly 2019-11-19 14:39:06

你好,运算时,例如a+b,如果a是开始一个数字值,但包含非数字字符(123a),b不是数字值开始时(b456),就会有A non-numeric value encountered警告。

解决办法为:加入intval方法进行强制转为数值型后。

如:

//其它类型转换成数值型
echo 1+3,'<br/>';
echo 1+2.3,'<br/>';
echo 1+true,'<br/>';
echo 1+false,'<br/>';
echo 1+null,'<br/>';
echo 1+intval('3king');
echo '<br/>';
echo 1+intval('21a3b4c');
echo '<br/>';
echo '<br/>';
echo 1+intval('true');

如果解决您的问题请采纳,祝学习愉快!

提问者 慕婉清2128704 2019-11-19 11:15:52

<?php
echo 'this is a test<br/>';
echo 123;
echo'<br/>';
echo 12.3;
echo'<br/>';
echo true;
echo '<hr/>';
//其它类型转换成数值型
echo 1+3,'<br/>';
echo 1+2.3,'<br/>';
echo 1+true,'<br/>';
echo 1+false,'<br/>';
echo 1+null,'<br/>';
echo 1+'3king';
echo '<br/>';
echo 1+'21a3b4c';
echo '<br/>';

echo '<br/>';
echo 1+'true';

guly 2019-11-19 11:08:00

你好,为了准确解决您的问题,请贴报错数据的源码。

  • 提问者 慕婉清2128704 #1
    <?php echo 'this is a test<br/>'; echo 123; echo'<br/>'; echo 12.3; echo'<br/>'; echo true; echo '<hr/>'; //其它类型转换成数值型 echo 1+3,'<br/>'; echo 1+2.3,'<br/>'; echo 1+true,'<br/>'; echo 1+false,'<br/>'; echo 1+null,'<br/>'; echo 1+'3king'; echo '<br/>'; echo 1+'21a3b4c'; echo '<br/>'; echo '<br/>'; echo 1+'true';
    2019-11-19 11:15:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师