У меня есть 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
Вы не говорите нам наиболее важная часть: почему и как вызывающая сторона заботится о том, существует ли адрес в базе данных и каков его идентификатор? Существуют ли другие методы API, связанные с 'getAddress'? Дизайн API не может выполняться изолированными битами. – Jon
Если два разных значения возвращаются в заблуждение, не возвращайте разные значения. :) – deceze
Извините, скажем, пользователь хочет использовать идентификатор адреса в качестве внешнего ключа в другой таблице базы данных ... Затем они будут использовать API для поиска полного адреса из почтового индекса и получить идентификатор, независимо от того, пришел ли он из база данных или API Google –