Dinamik bir sınıf değişkeni toplama

2 Cevap php

Sınıfta veri özel nerede olduğunu, php5 bir sınıf veri almak için çalışıyorum ve arama fonksiyonu sınıfından bir veri parçasına istiyor. Ben bir case ifadesi kullanmadan özel değişkenlerin veri belirli parça elde edebilmek istiyorum.

Ben etkisi şey yapmak istiyorum:

public function get_data($field)
{
    return $this->(variable with name passed in $field, i.e. name);
}

2 Cevap

Sadece kullanabilirsiniz

class Muffin
{
   private $_colour = 'red';

   public function get_data($field)
   {
      return $this->$field;
   }
}

Sonra yapabilirdi:

$a = new Muffin();

var_dump($a->get_data('_colour'));
<?php
public function get_data($field)
{
    return $this->{$field};
}
?>

Siz örneğin, çok büyülü __ get () işlevi bakmak isteyebilirsiniz:

<?php
class Foo
{
        private $prop = 'bar';
        public function __get($key)
        {
                return $this->{$key};
        }
}

$foo = new Foo();
echo $foo->prop;
?>

Maruz kaldığı için sınıfının iç verilerinin çok fazla izin verebilir gibi, kod bu tür dikkatli olacaktır.