public isPossibleShortNumber ( |
||
$number | PhoneNumber the short number to check | |
리턴 | boolean | whether the number is a possible short number |
public function isPossibleShortNumber(PhoneNumber $number)
{
$regionCodes = $this->getRegionCodesForCountryCode($number->getCountryCode());
$shortNumberLength = strlen($this->getNationalSignificantNumber($number));
foreach ($regionCodes as $region) {
$phoneMetadata = $this->getMetadataForRegion($region);
if ($phoneMetadata === null) {
continue;
}
if (in_array($shortNumberLength, $phoneMetadata->getGeneralDesc()->getPossibleLength())) {
return true;
}
}
return false;
}
public function testIsPossibleShortNumber() { $possibleNumber = new PhoneNumber(); $possibleNumber->setCountryCode(33)->setNationalNumber(123456); $this->assertTrue($this->shortInfo->isPossibleShortNumber($possibleNumber)); $this->assertTrue($this->shortInfo->isPossibleShortNumberForRegion($this->parse(123456, RegionCode::FR), RegionCode::FR)); $impossibleNumber = new PhoneNumber(); $impossibleNumber->setCountryCode(33)->setNationalNumber(9); $this->assertFalse($this->shortInfo->isPossibleShortNumber($impossibleNumber)); // Note that GB and GG share the country calling code 44, and that this number is possible but // not valid. $gbNumber = new PhoneNumber(); $gbNumber->setCountryCode(44)->setNationalNumber(11001); $this->assertTrue($this->shortInfo->isPossibleShortNumber($gbNumber)); }