Autor Zpráva
Numero1990
Profil
Zdravím,
lze nějak v PHP udělat, aby se mi argument metody automaticky konverzoval na pole?

Příklad:
Implementace
public function getByPropertyList(array $properties, array $values) { ... }

Použití
$user->getByPropertyList(array('uid', 'age'), array('5', '20'));
$user->getByPropertyList((array) 'uid', (array) '20'); // teď to musím řešit takhle
$user->getByPropertyList('uid', '20'); // takhle bych to chtěl

Jde mi o to, abych nemusel mít 2 implementace getByProperty() a getByPropertyList().

Poznámka
Šlo by to řešit tak, že bych ze signatury smazal array, ale pak bych musel parametry v těle metody validovat a to se mi nechce, protože od třídy mohu dědit, tyto metody přetížit a nesměl bych zapomenout napsat na začátek zase validaci zase s exceptionama, atp. Zbytečná duplikace kódu.
Tori
Profil
Numero1990:
A nebylo by potom jednodušší to udělat s jedním parametrem? tj. jednodušší, než muset hlídat pořadí prvků v obou polích
public function getByProperties(array $properties) { ... }
$user->getByProperties(array('uid' => 5));
$user->getByProperties(array('uid' => 7, 'age' => 130, 'pocetFousu' => 1e8));
Numero1990
Profil
Asi ano :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: