A non well formed numeric value encountered

2018-08-01 17:03:47 +08:00
 ZhouXuan
function return_bytes($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last) {
case 't':
$val *= 1024;
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
请问大大,哪里出错了?该怎么写。
2164 次点击
所在节点    PHP
4 条回复
salamanderMH
2018-08-01 17:46:26 +08:00
请问大大,哪里出错了?
wei745359223
2018-08-01 18:28:45 +08:00
switch 前加上
wei745359223
2018-08-01 18:29:02 +08:00
$val = intval($val);
swcat
2018-08-01 22:19:23 +08:00
看文档,看文档,看文档,怪不得总是有人黑 php🤣

你这代码$val *=1000,这里有问题,这里的$val 包含字母,so 就 nitice 了,做数学运算最好先把操作数的类型转换为整形,或者写一个方法来做*1000

function x1000(int $opt) : int
{
return $opt * 1000;
}

如果还是你那样的数据,就不会报 notice 了
而是直接报错了😂,就防止别人传些 123b b456 这种骚数据进来了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/476004

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX