首页 > 代码库 > PHP性状的使用
PHP性状的使用
<?php trait Geocodable{ /** @var string */ protected $address; /** @var \Geocoder\Geocoder */ protected $geocoder; /** @var \Geocoder\Result\Geocoded */ protected $geocoderResult; public function setGeocoder(\GeoCoder\GeocoderInterface $gocoder) { $this->geocoder = $gocoder; } public function setAddress($address) { $this->address = $address; } public function getLatitude() { if (isset($this->geocoderResult) == false){ $this->geocodeAddress(); } return $this->geocoderResult->getLatitude(); } public function getLongitude() { if (isset($this->geocoderResult) === false){ $this->geocodeAddress(); } return $this->geocoderResult->getLongitude(); } protected function geocodeAddress() { $this->geocoderResult = $this->geocoder->geocode($this->address); return true; } } //使用性状 class RetailStore { use Geocodable; //这里是类的实现 } $geocoderAdapter = new \Geocoder\HttpAdapter\CurlHttpAdapter(); $geocoderProvider = new \Geocoder\Provider\GoogleMapsProvider($geocoderAdapter); $geocoder = new \Geocoder\Geocoder($geocoderProvider); $store = new RetailStore(); $store->setAddress(‘420 9th Avenue, New York, NY 10001 USA‘); $store->setGeocoder($gocoder); $latitude = $store->getLatitude(); $longitude = $store->getLongitude(); echo $latitude, ‘:‘, $longitude;
PHP性状的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。