2015-06-25 1 views
1

Я пытаюсь сбросить значение объектаотключение СОС значение объекта

Я хочу, чтобы сбросить номер документа -950 от объекта $docList

foreach ($docList as $document) { 
    $visibleOrgIDs = $docList->LoadVisibleOrganizationListByDocID($document->getId()); 
    if(!in_array($org,$visibleOrgIDs)){ 
     unset($document->getId()); 
    } 
} 

$docList является объектом, который я обходе. print_r($docList) приведет это:

LomsDocumentList Object (
    [offset:protected] => 
    [limit:protected] => 
    [filter:protected] => 
    [sort:protected] => 
    [additionalFields:protected] => 
    [fetchCount] => 
    [countAll] => 
    [objectIds:RosiBaseList:private] => Array 
     (
      [0] => 950 
     ) 

    [storage:SplObjectStorage:private] => Array 
     (
      [00000000277be4ca0000000108de8355] => Array 
       (
        [obj] => LomsDocument Object 
         (
          [DBtableFieldNames:protected] => Array 
           (
            [id] => DOC_ID 
            [parentDocumentId] => PARENT_ID 
            [ownerId] => OWNER_ID 
            [fileId] => FILE_ID 
            [linkId] => LINK_ID 
            [documentTypeId] => DOC_TYPE_ID 
            [languageId] => LANG 
            [organizationId] => ORG_ID 
            [bpDepartmentId] => BP_DEPARTMENT_ID 
            [elementId] => ELEMENT_ID 
            [title] => TITLE 
            [description] => DESCRIPTION 
            [validUntil] => VALID_UNTIL 
            [isInternal] => IS_INTERNAL 
            [isInRevision] => IS_IN_REVISION 
            [mediaType] => MEDIA_TYPE 
            [expirationAdviceSent] => EXPIRATION_ADVICE_SENT 
            [firstAuthorId] => CRT_ID 
            [lastAuthorId] => LAST_UPDT_ID 
            [contentOwnerId] => CONTENT_OWNER_ID 
            [extractDocumentId] => EXTRACT_ID 
            [sortField] => SORT_FIELD 
            [category] => CATEGORY 
            [mediaUpdateAt] => LAST_MEDIA_CHNG_DATE_TIME 
            [mediaUpdateBy] => LAST_MEDIA_CHNG_NAME 
           ) 

          [DBtableName:protected] => LOMS_DOC 
          [parentDocumentId:protected] => 
          [parentDocument:protected] => 
          [ownerId:protected] => 174450 
          [owner:protected] => 
          [fileId:protected] => 4967 
          [file:protected] => 
          [linkId:protected] => 
          [link:protected] => 
          [documentTypeId:protected] => 3 
          [documentType:protected] => 
          [languageId:protected] => de 
          [language:protected] => 
          [organizationId:protected] => 122 
          [organization:protected] => 
          [bpDepartmentId:protected] => 122 
          [bpDepartment:protected] => 
          [elementId:protected] => 52 
          [element:protected] => 
          [title:protected] => Testdokument_1_New_BF_BENE_20.11.2014 
          [description:protected] => Test OMS BF Finance BeNe 
          [validUntil:protected] => DateTime Object 
           (
            [date] => 2014-12-19 00:00:00.000000 
            [timezone_type] => 3 
            [timezone] => Europe/Berlin 
           ) 
+1

Вы пытались сбросить значение, но вы должны сбросить переменную. – machineaddict

+0

Но как я могу отключить переменную, которая имеет значение 950 в этом случае. – Jaya

ответ

0

Вы можете сделать метод внутри LomsDocumentList класса, который отменяет эту переменную objectIds с помощью функции array_search.

Пример:

class LomsDocumentList { 
    public function searchAndUnsetByValue($val) { 
     $key = array_search($val, $this->objectIds); 
     if ($key !== FALSE) { 
      unset($this->objectIds[$key]); 
     } 
    } 
} 

и называют его

$docList->searchAndUnsetByValue(950); 
+0

Но если вы можете видеть выше, члены массива имеют закрытый доступ, он не будет работать в этом случае – Jaya

+0

Он будет работать, потому что вы просто добавили метод в класс 'LomsDocumentList', поэтому теперь доступна переменная' objectIds'. Прочитайте [this] (http://ocramius.github.io/blog/accessing-private-php-class-members-without-reflection/). – machineaddict

+0

Если я помещаю выше метод в класс LomsDocumentList, он показывает мне ошибку «У пользователя нет личного доступа», но я, если положить в LomsDocument, не показывать ошибки. Но я хочу отменить его из объекта LomsDocumentList. см. выше массив, он содержит два объекта. – Jaya

Смежные вопросы