2012-03-05 7 views
0

У меня есть Address_Finder класс с методом get_address($ordinal, $postcode), который использует смесь Google Map API и базу данных, чтобы получить полный адреслучший способ вернуть истинным или ИНТ из функции

get_address находит адресные данные: широта, lng, street_name и т. д. из $ordinal и $postcode и однажды вызывается, он задает переменные адреса экземпляра для результатов.

Если он находит адрес успешно, он устанавливает внутренние данные в результаты и возвращает true.

Однако, если адрес уже существует в базе данных, он возвращает address_id адреса в базе данных.

Таким образом, очевидно, что возвращаемые значения для функции являются либо истинными, либо стандартными целыми числами php.

Мы могли бы сделать что-то вроде этого:

$address = new Address_Finder(); 
$address_id = $address -> get_address("2", "NG8 5NW"); 

if ($address_id){ 
    $address_id = $address -> save(); // saves the address to the database 
} 

Теперь if ($address_id) будет оценивать справедливо, если get_address возвращает истину, или если она возвращает $address_id 1.

Это может быть решена путем делать:

if ($address_id === true){ 
    // save returns the address ID of the last inserted address 
    $address_id = $address -> save(); 
} 

Однако мне было интересно, есть ли способ улучшить это?

Как ... Я надеялся освободить класс Address_Finder как API на своем блоге, чтобы другие программисты там могли его использовать.

Итак, «лучший путь», я имею в виду с точки зрения того, как программисты будут использовать мой API

+0

Вы не говорите нам наиболее важная часть: почему и как вызывающая сторона заботится о том, существует ли адрес в базе данных и каков его идентификатор? Существуют ли другие методы API, связанные с 'getAddress'? Дизайн API не может выполняться изолированными битами. – Jon

+0

Если два разных значения возвращаются в заблуждение, не возвращайте разные значения. :) – deceze

+0

Извините, скажем, пользователь хочет использовать идентификатор адреса в качестве внешнего ключа в другой таблице базы данных ... Затем они будут использовать API для поиска полного адреса из почтового индекса и получить идентификатор, независимо от того, пришел ли он из база данных или API Google –

ответ

0

возвращает массив, вместо простого значения:

{ 
'success':true||false, //boolean indicating if get_address was successfull 
'id':  int||null  //id returned by get_address when successfull 
} 
Смежные вопросы