PHP возражают isset и/или пустой

Существует ли способ проверить, имеет ли объект какие-либо поля? Например, у меня есть сервер мыла, я запрашиваю использование клиента мыла и если я называю получить метод, я или возвращаюсь объект, содержащий поля, определяющие запрос мыла, который я сделал иначе, я - возвращенный объект (stdClass) #3 (0) {}.

Существует ли способ сказать, имеет ли объект что-нибудь?

    public function get($id){
    try{
        $client = new soapclient($this->WSDL,self::getAuthorization());
        $result = $client->__soapCall('get', array('get'=> array('sys_id'=>$id)));
        if(empty($result)){$result = false; }

    }catch(SoapFault $exception){
        //echo $exception;      
        $result = false;
    } 
    return $result;
}//end get() 

Этот метод должен возвратить или объект или ложь, и я только получаю объект без полей или объект с полями.

13
задан Chris 10 August 2010 в 14:49
поделиться

2 ответа

Обновлено, чтобы отразить текущее поведение, 30.05.12

empty () работал для этого, но поведение empty () менялось несколько раз. Как всегда, php-документы всегда являются лучшим источником точного поведения, а комментарии на этих страницах обычно содержат хорошую историю изменений с течением времени. Если вы хотите проверить отсутствие свойств объекта, на данный момент можно использовать очень защитный метод:

if (is_object($theObject) && (count(get_object_vars($theObject)) > 0)) {
    ...
22
ответ дан 1 December 2019 в 23:13
поделиться

Один из кодов, добавленных пользователем на странице php empty (), который, я думаю, решает вашу проблему проверки того, заполнен ли массив, но имеет ли он пустые значения.

http://www.php.net/manual/en/function.empty.php#97772 Чтобы узнать, есть ли в массиве только пустые (строковые) значения:

<?php 
$foo = array('foo'=>'', 'bar'=>''); 
$bar = implode('', $foo); 

if (empty($bar)) { 
    echo "EMPTY!"; 
} else { 
    echo "NOT EMPTY!"; 
} 
?>
-3
ответ дан 1 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: