Bir yöntemde ayarlayıcıları / alıcıları

3 Cevap php

Sadece bir fikir:

example (in PHP): to set name: $object->name('name'); to get name: $object->name();

Hiçbir argüman ise: yöntem belirleyici olarak başka gaz giderici olarak kullanılır. Basit alıcılar / setter için. Aptal, ne olursa olsun, belki?

edit: cevapları takip etmek: Ben mümkün olduğunca açık olarak arayüze sahip tercih çünkü get and set gerçekten sevmiyorum. Sadece bir kaç özellikleri vardır buna da overkill IMHO bulunuyor. Yani açık alıcılar / belirleyiciler bir çift ile sınıfları / nesneleri daraltmak istiyorum.

3 Cevap

Tabii, bu, uygulamanızda mantıklı, aksi takdirde ben sadece zaten sizin için kurulmuştur standart alıcılar / ayarlayıcıları kullanmak olacağını yapabilirdi. Sizin fonksiyonu şöyle olabilir:

public function name($val = null)
{
  if (is_null($val))
  {
    return $this->name;
  }
  else
  {
    $this->name = $val;
  }
}

Sorun takip etmek zor olurdu. Ben daha çok kullanmak istiyorum PHP5 en __ get ve __ yüzden almak ve değişkenleri ayarlamak için daha doğal set ve herkes ben yapıyorum tam olarak bilemez. IE:

class myClass
{

    function __get($name)
    {
       return $this->array[$name];
    }
    function __set($name, $value)
    {
       $this->array[$name] = $value;
    }
    function print()
    {
       echo $this->array['test'];
    }
}
$obj = new myClass;
$obj->test = "Hi";
echo $obj->test; //echos Hi.
$obj->print(); //echos Hi.

Bu __ () çağrısı sihirli yöntemi kullanılarak yapılabilir.

class Test {
    public function __call($name, array $args) {
        $variable =& $this->$name;
        if(!empty($args)) {
            $variable = $args[0];
        }
        return $variable;
    }
}