Autor Zpráva
itc
Profil *
Ahoj. Potřebuju kontrolovat zda je parametr funkce objekt dané instance např. "function funkce(MujObject $objekt)". Mám v zásadě 2 rozumné možnosti: buď nastavovat MujObjekt jako parametr funkce viz příklad nebo kontrolovat uvnitř funkce a pak příp. vyhazovat výjimku. Zajímalo by mě jak se tohle řeší. Jak to řešíte vy?
Jozin
Profil *
Ahoj,

možná semnou ostatní nebudou souhlasit, ale u mě je to asi takto:

1.
function funkce(MujObject $objekt)
je jen pro tu jednu třídu, ale co když tam potřebuješ dát objekt se stejnými metodami, který se jen trošku jinak chová. Takže bych si na to napsal interface iMujObject a psal tak
function funkce(iMujObject $objekt)
objekt potom implementuje interface a není problém.
2. řešení myslíš něco jako toto?
function funkce($objekt)
{
if($objekt instanceof MujObject)
  //neco
else
  throw new Exception("Chybka");
}

Jestli ano, tak to já používám jen v singletonech. Jinak používám první řešení co jsem psal. Co na to ostatní?
itc
Profil *
Taky jsem se tak nakonec rozhodl. Jsem rád že nejsem sám :-)

Jozin:
Jestli ano, tak to já používám jen v singletonech
Proč v singletonech ?
Jozin
Profil *
V singletonech z jednoduchého důvodu. Ukázka singletonu:
class Singleton
{

  protected static $_instance = null;

  private function __construct(){}

  public static function getInstance() {
    if(!(self::$_instance instanceof Singleton)) {
      self::$_instance = new self();
    }
    return self::$_instance;
  }

}


Samozřejmě od PHP 5.3. Doufám, že z té ukázky si to pochopil.
Lamicz
Profil
Jozin:
if(self::$_instance === null){
  ...
}

BTW nevidím důvod proč by to mělo být pouze 5.3

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:

0