Returns a list with the region codes that match the specific country calling code. For
non-geographical country calling codes, the region code 001 is returned. Also, in the case
of no region code being found, an empty list is returned.
public getRegionCodesForCountryCode ( integer $countryCallingCode ) : array | ||
$countryCallingCode | integer | |
return | array |
public function testGetRegionCodesForCountryCode() { $regionCodesForNANPA = $this->phoneUtil->getRegionCodesForCountryCode(1); $this->assertContains(RegionCode::US, $regionCodesForNANPA); $this->assertContains(RegionCode::BS, $regionCodesForNANPA); $this->assertContains(RegionCode::GB, $this->phoneUtil->getRegionCodesForCountryCode(44)); $this->assertContains(RegionCode::DE, $this->phoneUtil->getRegionCodesForCountryCode(49)); $this->assertContains(RegionCode::UN001, $this->phoneUtil->getRegionCodesForCountryCode(800)); // Test with invalid country calling code. $this->assertEmpty($this->phoneUtil->getRegionCodesForCountryCode(-1)); }
/** * Returns the customary display name in the given language for the given territory the phone * number is from. If it could be from many territories, nothing is returned. * * @param PhoneNumber $number * @param string $locale * @return string */ protected function getCountryNameForNumber(PhoneNumber $number, $locale) { $regionCodes = $this->phoneUtil->getRegionCodesForCountryCode($number->getCountryCode()); if (count($regionCodes) === 1) { return $this->getRegionDisplayName($regionCodes[0], $locale); } else { $regionWhereNumberIsValid = 'ZZ'; foreach ($regionCodes as $regionCode) { if ($this->phoneUtil->isValidNumberForRegion($number, $regionCode)) { if ($regionWhereNumberIsValid !== 'ZZ') { // If we can't assign the phone number as definitely belonging to only one territory, // then we return nothing. return ""; } $regionWhereNumberIsValid = $regionCode; } } return $this->getRegionDisplayName($regionWhereNumberIsValid, $locale); } }