得到变量值

时间:2010-03-05 18:25:37

标签: php variables class

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

我想获得$ this-&gt; obj_id值,但我不想使用变量$ key。 这一行$ this-&gt; obj_id = 14;将是动态的,我无法知道, 如果$ this-&gt; obj_id将被命名为obj_id或其他类似$ this-&gt; banana,那么它将被新的obj(“香蕉”)所取代

3 个答案:

答案 0 :(得分:1)

为了使该函数具有任何用处,您需要创建一个新类并将其设置为变量,例如:

$myclass = new obj(1);

虽然这种形式的构造函数仅支持向后兼容性(不建议使用,现在你真的应该使用__construct),它仍然应该运行并设置所有变量,可以在下面检索方式:

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

编辑:此行也需要更正,以便在结尾附近将'$ key'更改为'primary_key'。将'$ key'放在那里不会返回任何内容,因为它会发送'$ this-&gt; 1'而不存在。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在你的最后一行:

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

或:

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

说真的,我还是不明白这段代码的效用......