Static vs Self - Mi a különbség?
Biztos benned is felmerült már a kérdés, hogy mi a különbség a self és a static kulcsszavak között! Nézzük meg!
Hozzunk létre két osztályt, az egyik legyen a Creature, a másik pedig az ebből leszármazó Human class. A Creature osztálynak van két statikus metódusa, getType() illetve getRealType(). Az egyik a self::class-t írja ki, míg a másik a static::class-t.
Hívjuk meg mindkét osztályon a két-két metódust és nézzük meg mit ír ki! És itt már látható is a különbség, mindjárt elmagyarázom!
Mivel a getType() metódus self::class-t írja ki, ezért ebben az esetben mindig “ott” hajtódik végre, ahová valójában tartozik, tehát a Creature-ben.
Míg a getRealType() esetén a static::class-t írjuk ki, ami
a late static binding-nak köszönhetően “ott” hajtódik végre, ahol valójában meghívtuk, ezért lesz a Human::getRealType() eredménye 'Human'.
Instagram poszt
További 'Laravel' cikkek
Azt tudjuk, hogy a paginate() metódussal egyszerűen meg lehet oldani a lapozást. De mi a helyzet akkor, ha egy collection-t szeretnék lapozhatóvá tenni?
Biztos neked is volt már olyan feladatod, ahol két modellt kellett összehasonlítani.
Habár a 404-es error page-et automatikusan megjeleníti a Laravel, néha jól jöhet, ha tudunk fallback route-okat létrehozni arra az esetre, ha a kíván route nem található.
Meg szeretnénk vizsgálni egy objektum egyik property-jét és ha az nullish (azaz null vagy undefined), akkor értéket adni neki.
