PHP yeni sınıflar oluşturma __call büyü

0 Cevap php

Ben bir autoloadable formları çerçeve üretmek benim mvc bazı kod içinde __ çağrı sihirli kullanıyorum ama ben burada biraz bir umut ediyorum bir sorun haline koştu etrafında bir çalışma olabilir.

$ MethodName ve $ argümanlar: __ çağrı sihirli iki paramters alır. Argümanlar denilen args bir dizi olarak geri geliyor. Normalde bu işlevi böyle yani bir fonksiyonun içine bu argümanları beslemek olarak yapabileceğiniz yöntemleri denir:

call_user_func_array($methodName, $arguments);

Ve bu argümanlarla yöntemleri imza yaymak olacaktır. Biraz daha karmaşık bir şeyler yapmaya çalışıyorum. Ben sınıfları yapıcı belki argümanların Imploded virgül deliminenated dizisi göndermek için güçlü olmak ya da sadece doğrudan args gönderme ancak bu hem istenilen sonucu üretmek değil aracılığıyla, bir sınıfları Oluşturucu aynı şekilde yayılmasının çalışılıyor. Ben yapıcı içine aşağı bir Imploded dizi gönderdiğinizde PHP bir dize düşünüyor ve ben dizi gönderdiğinizde bunun bir dizi olduğunu düşünüyor.

Bu benim atm kullanıyorum kodu:

public function __call($method, $args){

    return $this->init_element(new $method($args['name'], $args['value'], $args['opts']));

}

Ne olsa aşağı geçmek için 4 argümanları olsaydı? Ben bir fonksiyon için call_user_func_array kullanarak yapabilirsiniz gibi dinamik kurucu doldurmak için get () bir yolu var mı?

Bunu yapmak için bir özniteliklerine () işlevini kullanabilirsiniz ama gerçekten fonksiyonları ile benim gibi bunu yapmak mümkün olmak istiyorum.

Teşekkür peşin,

0 Cevap