2010-03-05 75 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/>"; 
    } 
} 
?> 

有没有办法获得$this->primary_key值? 赞$this->$this->primary_key得到变量值


<?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"); 

我想这 - $> obj_id值,但我不whant使用变量$关键。 这一行$ this-> obj_id = 14;将是动态的,我我就不会能知道,如果 $这个 - > obj_id将被命名为obj_id或别的东西,像$这个 - >香蕉,它将在新的OBJ(“香蕉”)

+0

是什么语言这个? – 2010-03-05 18:26:33

+0

如果指出语言,很好用 – 2010-03-05 18:27:52

+0

您是否愿意指定这是哪种语言,以及其他任何类似于可能有助于哪种操作系统和/或实现的东西? – 2010-03-05 18:27:58

回答

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

那么为了使这种功能,即使有什么用处,你需要创建一个新的类,并将其设置为可变的,比如这个:

$myclass = new obj(1); 

虽然构造的这种形式是只支持向后兼容(不建议使用,现在应该使用__construct),它仍然应该运行并设置所有变量,这些变量可以在以下w中检索AY:

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

编辑:另外这条线需要加以纠正,以改变“$键”至近终点“primary_key”。放置'$ key'不会返回任何内容,因为它会发送不存在的'$ this-> 1'。

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

在你的最后一行:

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

或:

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

说真的,我还是不明白这个代码的工具...