Wpis z mikrobloga

@zakopiak: sorry, w sumie źle napisałem powinno być w drugim:

public function nazwa(Entity $entity = null);
w takim zapisie nie widzę różnicy pomiędzy obiema wersjami.
tj: rozumiem, że w przypadku pierwszego zapisu jak nie przekaże NULL'a to wyrzuci missing argument - spoko, ale jaki jest sens tego zapisu, tworzenia tego operatora "?" dla argumentów skoro można dać domyślnie = null

@stosiedem

:>
@malypirat:
#php71 jak już

To że możesz precyzyjniej określać typy argumentów. W drugim przypadku przyjmie wszystko, w pierwszym tylko null lub instancję Entity. Łatwiej kontrolować w ten sposób flow I/O.

Dziś złapałem się na tym że oczekiwałem stringa, a dostawałem obiekt. Z tego co kojarzę jest jeszcze | dla rozdzielania typów wyjątków, ale to chyba php7.2.
sorry, w sumie źle napisałem powinno być w drugim:

public function nazwa(Entity $entity = null);


@malypirat: nie wymusza to od programisty żeby wszędzie dawał domyślną wartość. Wolałbyś pisać po trzy-cztery nulle w klasach rozszerzających?

@stosiedem wskazał dobre źródło. Plusuj. Plusuj go, mówię!
jaki jest sens tego zapisu, tworzenia tego operatora "?" dla argumentów skoro można dać domyślnie = null


Po pierwsze taki, że zrobienie = null powoduje, że argument jest opcjonalny, a możesz tego nie chcieć w ten sposób wyrażać.

Po drugie, wartość domyślna może być inna niż null, a możesz wciąż dopuścić przekazanie nulla:

public function foo(?int $num = 1);