Altra piccola domanda di approfondimento

  • Creatore Discussione Creatore Discussione otto9due
  • Data di inizio Data di inizio

otto9due

Utente Attivo
22 Feb 2014
591
25
28
E' possibile in qualche modo conoscere e verificare il nome di una variabile?
Mi spiego meglio:

Mettiamo che ho un metodo di questo tipo:

PHP:
<?php
class MyClass {
 
        public $prova;
		 
        // funzioni
        public function mioMetodo($prova) {
			$this->prova = 1;
			
			if( $this->prova == 1 ){
				
			$test = 'Il nome della variabile è $test';	
			
			return ( $test );	
			
			}else{
			
			$test2 = 'Il nome della variabile è $test2';	
			
			return ( $test2 );
			
			}

        }
 
}
?>

Ora io vorrei capire se c'è un modo, ricevendo il return di questo metodo, per stabilire se il metodo mi ha restituito $test o $test1 senza verificare però il tipo ( cioè se è un'array o una stringa o un'intero ecc. ) solo dal nome della variabile restituita. E' possibile?
 
mi viene in mente solo un metodo implicito
PHP:
<?php
$a = mioMetodo(2); ShowVar($a);
$b = mioMetodo(); ShowVar($b);

function mioMetodo($provami=1)
	{
	$prova = $provami;

	if( $prova == 1 )
		{
		$miaVar['test1'] = $prova; 
		}
	else
		{
		$miaVar['test2'] = $prova;    
		}
	return $miaVar;
	}

function ShowVar($x)
	{
	while( list($chiave, $valore)=each($x) )
		{
		echo $chiave . " -> " . $valore . "<br />";

		${$chiave}=trim(strip_tags($valore));

		echo $chiave . " -> " . ${$chiave} . "<br />"; 
		}

	if (!empty($test1)) echo "test1 -> " . $test1 . "<br /> <br />"; 
	if (!empty($test2)) echo "test2 -> " . $test2 . "<br /> <br />"; 
	}
?>
 
ciao
non capisco a cosa ti serva, ma con un echo vedi il nome della variabile
scusa non uso il metodo delle classi, ma non sopporto la programmazione ad oggetti (mi sta sul ...), ma comunque il risultato è lo stesso
PHP:
<?php
function mioMetodo($prova) {
	if($prova == 1 ){
		$test = 'Il nome della variabile è $test';    
		return $test;    
	}else{
		$test2 = 'Il nome della variabile è $test2';    
		return $test2;
	}
}
echo mioMetodo(1)."<br>";//Il nome della variabile è $test
echo mioMetodo(80);//Il nome della variabile è $test2
?>
 
Diciamo che nel mio caso posso risolvere verificando il tipo di dato contenuto nel return. Ma In pratica mi serve a questo: ho un metodo che mi restituisce o un'array con dei valori o una stringa. La pagina che lo riceve mostrerà nel caso dell'array un elenco di risultati, nel caso della stringa il suo contenuto. Nel caso dell'array ho impostato un ciclo che la scorra che ovviamente mi da errore se non ha un'array in entrata.


Saluti.
G.G.
 
ciao
usa is_array
PHP:
<?php
//...
$variabile=mioMetodo($prova);
if(is_array($variabile)){
	//è un array quindi cicli
}else{
	//fai altro
}
//....
?>
ti ricordo che poi hai diversi is_pinco: bool, callable, float...
 
Di in questo caso penso di usare questa soluzione. Ho cercato anche online e credo che quello che chiedevo nn esiste.


Saluti.
G.G.
 

Discussioni simili