Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Stringa di un oggetto

  1. #1

    Stringa di un oggetto

    Ciao a tutti, avrei bisogno di sapere come fare per avere da un oggetto la corrispondente stringa cioè una sorta di casting a stringa, come fa ad esempio la funzione var_dump ma invece che in output come valore restituito, ho visto var_export ma io preferirei una che chiama il metodo __toString dell'oggetto e se non c'è restituisce solo il nome della classe.
    Coltiva Linux, Windows si pianta da solo!

  2. #2
    da questa domanda non è che si capisca molto:
    a te cosa serve di preciso?
    posso suggerirti:
    Codice PHP:
    public function __toString() {
      return 
    serialize($this);

    oppure
    Codice PHP:
    public function __toString() {
      
    ob_start();
      
    var_dump($this);
      return 
    ob_end_clean();

    con var export invece la funzione che viene chiamata nel casting è __set_state che tra l'altro va dichiarata come statica
    spero di essere stato di aiuto

  3. #3
    Mi serviva più che altro per debugging e mi sono arrangiato con una cosa "fatta in casa":
    Codice PHP:
    function debug($var) {
    if(
    is_object($var)) {
        if(
    method_exists($var,'__toString'))
            
    $value $var->__toString();
        else
            
    $value 'object ('.get_class($var).')';
    }

    // else { ...Codice per output di altre variabili... }

    return $value;

    Ero abituato a java dove il toString c'è sempre
    Coltiva Linux, Windows si pianta da solo!

  4. #4
    ad ogno modo il metodo __toString si puù far richiamare anche anteponendo (string) alla variabile contenente l'oggetto. Alcuni costrutti, e funzioni come ad esempio echo, lo richiamano direttamente

  5. #5
    Originariamente inviato da francy2
    ad ogno modo il metodo __toString si puù far richiamare anche anteponendo (string) alla variabile contenente l'oggetto. Alcuni costrutti, e funzioni come ad esempio echo, lo richiamano direttamente
    Si però utilizzando (string) da errore
    Catchable fatal error: Object of class Foo could not be converted to string
    Probabilmente funziona solo se la classe ha un metodo __toString.
    Coltiva Linux, Windows si pianta da solo!

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.