我有以下功能来验证电话号码的长度。当我传递一个电话号码111-111-111并回显它的长度时它返回10.但是,我在下面写的测试它的phpUnit每次都应该通过时失败。我无法弄清楚为什么会这样。它没有连字符就可以工作。
function validatePhone($phone) {
//eliminate every char except 0-9
$justNums = preg_replace("/[^0-9]/", '', $phone);
return((strlen($justNums) == 10) or (strlen($justNums) == 7));
}
public function testValidatePhoneGoodNumber() {
$this->assertTrue($this->val->validatePhone(111-111-1111)); //THIS FAILS
}
public function testValidatePhoneGoodNumber() {
$this->assertTrue($this->val->validatePhone(1111111111)); //THIS PASSES
}
答案 0 :(得分:1)
在php混合伪类型的输入中添加引号。
function validatePhone($phone) {
//eliminate every char except 0-9
$justNums = preg_replace("/[^0-9]/", '', $phone);
return((strlen($justNums) == 10) or (strlen($justNums) == 7));
}
public function testValidatePhoneGoodNumber() {
$this->assertTrue($this->val->validatePhone('111-111-1111'));
}