получить значение переменной - PullRequest
0 голосов
/ 05 марта 2010
<?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-> obj_id, но я не хочу использовать переменную $ key. Эта строка $ this-> obj_id = 14; будет динамичным, и я не смогу знать, если $ this-> obj_id будет назван obj_id или чем-то еще, например $ this-> banana, это будет определяться новым obj ("banana")

Ответы [ 3 ]

1 голос
/ 05 марта 2010

Что ж, для того, чтобы эта функция была хоть как-то полезна, вам нужно создать новый класс и установить для него переменную, например:

$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-> 1», который не существует.

echo "obj_id from primary_key string: ".$this->primary_key."<br/>";
0 голосов
/ 05 марта 2010

В вашей последней строке:

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

или

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

Серьезно, я до сих пор не понимаю полезности этого кода ...

0 голосов
/ 05 марта 2010
$obj_a = new obj(5);
echo $obj_a->primary_key;       // prints '5'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...