Richiama variabili in modo dinamico

billynapoli084

Nuovo Utente
6 Nov 2015
2
0
0
Salve, ho questo tipo di problema.
in una classe dovrei confrontare due variabili per i quali non conosco subito i nomi.
Forse con un esempio diretto riesco a spiegarmi meglio:

$campo1 : prima variabile di confronto
$campo2 : seconda variabile di confronto

entrambe le variabili contengono il nome della variabile che dovrà essere confrontata, es:

$campo1 = "risultato['plafond']";
$campo2 = "risultato['punteggio']";

ecco cosa vorrei fare:

if(${"class->".$campo1} > ${"class->".$campo2}) { FACCIO DELLE COSE }

Scritto così ho come errore : Undefined variable: class->risultato['plafond']

PS. Premetto che la variabile esiste ed ha un valore. Infatti:

echo $class->risultato['plafond']; --> stampa 10
if(${"class->".$campo1} > ${"class->".$campo2}){ FACCIO DELLE COSE } --> ERRORE

Spero di essere stato chiaro.
Grazie

Antonio
 
Vedi un pò se quest'esempio può tornarti utile in qualcosa..
PHP:
<?php

class MyClass {
    
    
	//Esempio 1:
	public function Prova()
		{
	$this->prova= 0;
	${'nome'.$this->prova}='Zero';
	
	return $nome0; //stamperà a video 'Zero'
		}
	
	 
	 public function ProvaDue()
		{
	//Esempio 2
	$this->nome = 'Giacomo';
	${$this->nome}='Il nome è '.$this->nome;
	
	return $Lucia;
		}
	 //Stamperà a video: Il nome è Giacomo
}
?>

<?php
$istanza1 = new MyClass();
echo $istanza1->Prova();
echo $istanza1->ProvaDue();


?>

Credo che tu possa tentare un confronto tra due metodi..
 
Avevo già trovato una cosa simile ma non riesco a capire perchè non mi funziona.
Ho provato:

if( $this->{$val1['campo1']} = $this->{$val1['campo2']}){}
if( ${"this->".$val1['campo1']} = ${"this->".$val1['campo2']}){ }

ma niente, ho sempre l'errore e non mi da nessun valore.
 
Prova a fare due return da due metodi e poi metterli a confronto..


Saluti.
G.G.
 

Discussioni simili