Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774

    $self & $this:quali sono le differenze?

    salve a tutti,
    mi sono sempre chiesto che differenza ci sia tra l'operatore $this e $self...
    ho cercato sia nel forum che nella sezione del sito dedicata a php ma non ho trovato nulla....
    quindi chiedo a voi


    sempre riferito a questa domanda avrei un altro quesito.
    ho una classe tra le cui proprietà ho inserito un oggetto DOMDocument caricato con l'xml opportuno...
    la maggior parte dei metodi di questa classe agisce su questo oggetto e per evitare che questo debba essere ogni volta ricreato ho pensato di realizzare una variante del pattern Singleton... in parole povere l'istanza DOM viene creata una volta sola e poi ne viene restituita una copia a ciascuna metodo che la richiede.
    La variante rispetto al classico Singleton è che questa istanza non è valida per l'intera applicazione ma solo all'interno della classe stessa....
    per far ciò ho creato questa varibile in modo non statico.
    ecco il codice che la gestisce:

    codice:
                 protected $objXML=null;
    
    	protected function loadObjXML(){
    		if($self->objXML == null){	
    			$self->objXML=new DOMDocument();
    			$self->objXML->loadXML($this->xml);
    		}
    		return $self->objXML;
    	}
    e così funziona alla perfezione... ma la mia domanda è:
    perchè se al posto di $self uso $this invece non funziona???

    grazie mille
    citrus

  2. #2
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774

    Re: $self & $this:quali sono le differenze?

    purtroppo mi tocca correggermi

    Originariamente inviato da citrus
    sempre riferito a questa domanda avrei un altro quesito.
    ho una classe tra le cui proprietà ho inserito un oggetto DOMDocument caricato con l'xml opportuno...
    la maggior parte dei metodi di questa classe agisce su questo oggetto e per evitare che questo debba essere ogni volta ricreato ho pensato di realizzare una variante del pattern Singleton... in parole povere l'istanza DOM viene creata una volta sola e poi ne viene restituita una copia a ciascuna metodo che la richiede.
    La variante rispetto al classico Singleton è che questa istanza non è valida per l'intera applicazione ma solo all'interno della classe stessa....
    per far ciò ho creato questa varibile in modo non statico.
    ecco il codice che la gestisce:

    codice:
                 protected $objXML=null;
    
    	protected function loadObjXML(){
    		if($self->objXML == null){	
    			$self->objXML=new DOMDocument();
    			$self->objXML->loadXML($this->xml);
    		}
    		return $self->objXML;
    	}
    e così funziona alla perfezione... ma la mia domanda è:
    perchè se al posto di $self uso $this invece non funziona???

    mi sbagliavo...
    con il $self usato in quel modo non funziona affatto... sembrava funzionare solo perchè le circostanze in cui l'ho provato mi hanno tratto in inganno....
    scusate il casino....
    a questo punto aprirò un thread apposta per la questione così evito di fare confusione...

    rimane comunque la mia prima domanda, ovvero:
    qual'è la differenza tra gli operatori $this e $self?

    grazie mille a tutti
    citrus

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.