2016-12-29 2 views
-1

получаю ответ от API в виде массива объектов, но иногда я получить различные данные в виде данных объектаКак проверить, существует ли объект в массиве? [PHP]

, например:

//first response 
$response->getBody(); 
//second response 
$response->getMessage(); 

так, если я назвать одним из ответа выше, что оленья кожа есть объект, он собирается иметь ошибку, то, что я сделал до сих пор, как это:

if(empty($response->getBody())){ 
    //do something 
} 

в заключение я хочу, чтобы обнаружить, если массив объекта имеет объект я хочу, чтобы позвонить или использование

+0

без кода, я не уверен. Если это массив, вы можете использовать if (isset ($ array ['key']). Как объект, все немного отличается. Вам нужно будет разработать –

+0

: if (empty ((array) $ ответ)) { if (method_exists ($ response, 'getBody')) { // сделать что-то } } –

ответ

0

использовать method_exists(), чтобы проверить, выходит ли метод класса.

<?php 
    $directory = new Directory('.'); 
    var_dump(method_exists($directory,'read')); 
?> 

или использовать is_callable()

class someClass { 

    function someMethod() { } 

} 

$anObject = new someClass(); 

$methodVariable = array($anObject, 'someMethod'); 

var_dump(is_callable($methodVariable, true, $callable_name)); // 
bool(true) 

echo $callable_name, "\n"; // someClass::someMethod 
Смежные вопросы