<?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(“香蕉”)所取代
答案 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/>";
说真的,我还是不明白这段代码的效用......