標籤:isset maps set turn style oda adapter this false
<?phptrait 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性狀的使用