停止为 PHP 提供错误 number_format

Posted

技术标签:

【中文标题】停止为 PHP 提供错误 number_format【英文标题】:Stop giving error number_format for PHP 【发布时间】:2017-04-05 16:11:36 【问题描述】:

这是一个问题:

$var = 1000;
$var2 = number_format($var,2);// No error

和;

$var = 'Some String';
$var2 = number_format($var,2);// Gives 'number_format() expects parameter 1 to be double.... error'

我的处理方案是;

$var = 'Some String';
$var_escape = 1000;
if(!$var2 = number_format($var,2))
    $var2 = $var_escape;// if $var not a integer; always give 1000 to $var2.

这个解决方案运行良好,但是;仍然给出“预期参数错误”;因为这条线:

if(!$var2 = number_format($var,2))

我不想使用“@”抑制。这个问题还有其他解决方案吗?谢谢...

我的灵感来自答案解决方案

if(!is_numeric($var2 = $var))$var2 = $var_escape;

谢谢大家...

【问题讨论】:

查看string is a number是否先? ***.com/questions/8307104/… 【参考方案1】:

您可以使用 is_numeric 函数检查您的输入是否为数字

$var = 'Some String';
$var_escape = 1000;
if(is_numeric($var))
$var2=number_format($var,2);
else
$var2=$var_escape;

【讨论】:

【参考方案2】:

您可以简单地使用默认值提前声明$var2,然后使用php 中内置的is_numeric() 函数检查以确保$var 的传入值是数字。如果$var 的传入值确实是数字,则将该数字值分配给$var2,否则$var2 将保持默认1000 的值。

$var2 = 1000;

if(is_numeric($var))
  $var2 = number_format($var,2);


// You can proceed to use $var2 here as it will be 1000 or the value from $var if it was numeric.

【讨论】:

【参考方案3】:

小心...Demo

用途:

if(is_float($var) || is_integer($var))

代替:

if(is_numeric($var))

除非您也希望处理您的数字字符串。

【讨论】:

【参考方案4】:

使用正则表达式是最简单的,这会验证它是整数还是浮点数。

代码

$vars = array(
    'Some String',
    123,
    123.5,
    -11,
    "123.55",
    "$2!!",
    .1,
    1,
    ".1",
    "1"
);

foreach($vars as $var) 

    if(0 !== preg_match('/^-?\d*\.?\d*$/', $var)) 
        echo number_format($var, 2) . PHP_EOL;
     else 
        echo $var . " -> " . 1000 . PHP_EOL;
    

输出

Some String -> 1000
123.00
123.50
-11.55
123.55
$2!! -> 1000
0.10
1.00
0.10
1.00

【讨论】:

以上是关于停止为 PHP 提供错误 number_format的主要内容,如果未能解决你的问题,请参考以下文章

PHP 工匠错误:每次重新启动后 CLI 停止工作

解决数据库连接错误 您在wp-config.php文件中提供的数据库用户名和密码可能不正确,或者无法连接到localhost上的数据库服务器,这意味着您的主机数据库服务器已停止工作。

php中的number_format [关闭]

如果 php 处理器离线,有啥方法可以停止提供 php 文件?

PHP-cgi 随机停止工作而没有错误日志

PHP Drupal 6 - 停止向块ID提供哈希名称的视图 - 块预处理