лучший способ вернуть true или int из функции - PullRequest
0 голосов
/ 05 марта 2012

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

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

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

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

Итак, очевидно, что возвращаемые значения для функции - либо true, либо стандартный целочисленный тип 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 ) будет оценивать true, если get_address возвращает true, или если оно возвращает $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

1 Ответ

0 голосов
/ 05 марта 2012

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

{
 'success':true||false,  //boolean indicating if get_address was successfull
 'id':     int||null     //id returned by get_address when successfull
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...