Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Leggere variabile di un oggetto dentro un altro oggetto

    Ciao a tutti,
    ho un problema per mia ignoranza. Non riesco ad accedere alle informazioni presenti in una struttura dati annidata.
    Praticamente partiamo dall'inizio ho le seguenti tre classi:
    Codice PHP:
    class preResult{
    public 
    $ClientIDRecipient// string  
    public $Provincia// string  
    public $destinatario// Destinatario
    }
    class 
    Result {  
    public 
    $Destinatari// ArrayOfpreResult  
    public $Result// Eccezione
    }
    class 
    Destinatario {  
    public 
    $CAP// string  
    public $Citta// string  
    public $Cognome// string  
    public $Indirizzo// string  
    public $Nome// string  
    public $RagioneSociale// string  
    public $Stato// string  
    public $Telefono// string

    Il programma che invoco mi restituisce un oggetto Result ed io non riesco ad accedere ai vari campi presenti all'interno.
    Faccio un esempio
    Codice PHP:
    //resultD è un oggetto preResult mentre $OggettoRestituito è un oggetto di tipo Result

    $resultD $OggettoRestituito->Destinatari;
    print_r($resultD); 
    Questo porta in output quanto segue

    stdClass Object ( [preResult] => preResult Object ( [ClientIDRecipient] => [Provincia] => MILANO [destinatario] => Destinatario Object ( [CAP] => 02100 [Citta] => Valmodrone [Cognome] => Rossi [Indirizzo] => [Nome] => Aldo [RagioneSociale] => [Stato] => Italia [Telefono] => ) ) )

    Io vorrei poter accedere all'oggetto destinatario di preResult ma non so come fare, ho provato vari modi che non ripeto qui solo per non farvi ridere...va lo faccio. Per esempio:

    Codice PHP:

    $destinatariooggetto 
    = new Destinatario();
    $destinatariooggetto $resultD->destinatario
    Ma questo mi restituisce il seguente errore:
    Notice: Undefined property: stdClass::$destinatario in....

    Voi cosa mi consigliate di fare oltre studiare (lo sto facendo...ma senza risultato fino ad ora...eheheh)?
    Come fare a leggere i dati interni alla struttura vista sopra?
    Grazie a chiunque provi ad aiutarmi...per molti di voi sarà una sciocchezza ma io mi sto perdendo letteralmente.
    Ultima modifica di Mr_BInarydigiT; 26-09-2014 a 17:15
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

  2. #2
    formatta il codice in modo leggibile.
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Sistemato, me lo aveva formattato in automatico l'editor togliendomi i ritorni a capo :P
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Dato che preResult è il nome della chiave dove è contenuta l'istanza e destinatario è al suo interno prova così

    codice:
    $dest = $destinatari->preResult->destinatario;
    echo $dest->Nome;


  5. #5
    Grazie RoTeam,
    proverò subito la tua soluzione anche se penso non funzioni in quanto $destinatari non è una variabile dichiarata direttamente da nessuna parte, tranne nella classe Result.
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

  6. #6
    Il tuo codice RoTeam mi dà il seguente errore
    Notice: Undefined variable: Destinatari in [..] on line 77

    Notice: Trying to get property of non-object in
    [..] on line 77

    Notice: Trying to get property of non-object in
    [..] on line 77

    Non so proprio che pesci prendere...sigh!!!
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

  7. #7
    Fatto...grazie RoTeam ho risolto così:
    Codice PHP:
    $destinatariooggetto $resultD->preResult->destinatario
    Grazie tantissimo...ma non ho capito perchè va richiamato così...quale fondamento teorico me lo insegna? Io avrei preso l'oggetto incapsulato più in profondità partendo da un altro oggetto che lo incapsulava e invece ho dovuto scrivere il nome della classe anziché l'oggetto istanziato? Bah...sono un po' perplesso.
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.