2010-03-05 6 views
0
<?php 
class obj { 
    var $primary_key; 

    function obj($key = null){ 
     if(isset($key)){ 
      $this->primary_key = $key; 
     } 
     echo "primary_key: ".$this->primary_key."<br/>"; 

     $this->obj_id = 14; 


     echo "obj_id: ".$this->obj_id."<br/>"; 

     $key = $this->primary_key; 

     echo "obj_id from primary_key string: ".$this->$key."<br/>"; 
    } 
} 
?> 

Y at-il un moyen d'obtenir la valeur $this->primary_key? Comme $this->$this->primary_key?obtenir la valeur variable


<?php 
class obj { 
    var $primary_key; 

    function obj($key = null){ 
     if(isset($key)){ 
      $this->primary_key = $key; 
     } 
     echo "primary_key: ".$this->primary_key."<br/>"; 

     $this->obj_id = 14; 


     echo "obj_id: ".$this->obj_id."<br/>"; 

     $key = $this->primary_key; 

     echo "obj_id from primary_key string: ".$this->$key."<br/>"; 
    } 
} 
?> 

$aaa = new obj("obj_id"); 

je veux obtenir $ this-> obj_id valeur, mais je ne veux utiliser le variable clé de $. Cette ligne $ this-> obj_id = 14; sera dynamique et je ne serais pas capable de savoir, si $ this-> obj_id sera nommé obj_id ou quelque chose d'autre comme $ this-> banana, il serait désidé par new obj ("banana")

+0

Quelle langue est ce? –

+0

c'est bon si vous indiquez la langue –

+0

Souhaitez-vous spécifier quelle langue est-ce, et n'importe quoi d'autre comme quel système d'exploitation et/ou la mise en œuvre qui pourrait aider? –

Répondre

0
$obj_a = new obj(5); 
echo $obj_a->primary_key;  // prints '5' 
1

bien pour que cette fonction de même être d'une quelconque utilité, vous devez créer une nouvelle classe et de définir à une variable, comme ceci:

$myclass = new obj(1); 

Bien que la forme d'un constructeur est seulement pris en charge pour la rétrocompatibilité (obsolète, vous êtes vraiment censé utiliser __construct maintenant), il devrait toujours exécuter et définir toutes vos variables, qui peuvent être récupérées dans les w suivant ay:

echo $myclass->primary_key; // the primary_key value 
echo $myclass->obj_id; // the obj_id value 

Edit: De plus, cette ligne doit être corrigée pour modifier la « touche $ » à « primary_key » à la fin. Mettre '$ key' là-bas ne retournera rien car il enverrait '$ this-> 1' qui n'existe pas.

echo "obj_id from primary_key string: ".$this->primary_key."<br/>"; 
0

Dans votre dernière ligne:

echo "obj_id from primary_key string: ".$key."<br/>"; 

ou:

echo "obj_id from primary_key string: ".$this->$primary_key."<br/>"; 

Sérieusement, je ne comprends toujours pas l'utilité de ce code ...