php Int的字符串应抛出,而不是返回0

6uxekuva  于 2023-01-08  发布在  PHP
关注(0)|答案(2)|浏览(109)

如果我用intval('string')(int) 'string'来转换一个字符串,并且如果该字符串包含数字以外的字母,我会得到int 0作为结果。
有没有一种方法可以抛出一个可捕获的Exception,这样我就可以检查转换是否成功,这样用户就不会意外地输入1O而不是10
另外,是否有办法检查浮动?

yvfmudvl

yvfmudvl1#

使用preg_match("/\D/", 'string')可以解决这个问题,这个函数在字符串中寻找特定的模式,如果找到,则返回true,如果没有,则返回false。
分隔符\D检查非数字,如0,正斜杠用于分隔符部分的开始和结束。
因此,当它发现一个非数字值时,它将返回true,当它返回true时,您将不得不抛出一个错误或提前从程序中返回。

avwztpqn

avwztpqn2#

class Number {
private $value;

public function __construct($value) {
    $this->setValue($value);
}

public function getValue(): float {
    return $this->value;
}

public function getIntValue(): int {
    return intval($this->value);
}

public function setValue($value) {
    if (!is_numeric($value)) {
        throw new Exception("$value is not numeric");
    }
    $this->value;
} }

相关问题