Použitie "Logical NOT" (!) operátora na objekt v PHP rubrika: Programování: PHP
2
Michal Zahradníček
položil/-a 19.3.2015
Zdravím,
je nejaká možnosť ako použiť operátor ! na kontrolu stavu objektu?
Uvediem príklad
class TestObj { protected $data = [ ]; function get()... function set()... //nejaka magic metoda function _state() { return !empty($this->data); } } $a = new TestObj(); $a->set('klobasa'); if (!$a) echo 'Objekt nema data'; if ($a) echo 'Objekt ma data';
Teoreticky sa da pouzit implement Countable a kontrolovat pocet poloziek, ale nie je to velmi elegantne...
Dakujem za vase napady a nazory.
odkaz
10
jiri.knesl
odpověděl/-a 19.3.2015
Použij metodu hasData, která vrací boolean a tu volej v ifu.
Nejblž tvému řešení je přetížit metodu __toString() a v if(! (string) $obj) porovnávat takto. Ale je to prasárna. Založ si na to metodu (viz předchozí řádek) a udělej to pomocí ní.
Dál pak je otázkou, jestli potřebuješ tahat nějaká fakta o objektu, jestli nebude vhodnější vtáhnout logiku přímo do dané třídy.
Pro zobrazení všech 4 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře