Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Newsy _ [phponion] Enumeratory w PHP 8.1

Napisany przez: Szado 27.06.2021, 09:33:19

Premiera PHP 8.1 zaplanowana jest na 25 listopada 2021 roku. Typ enumeracyjny, popularny ENUM to jedna z czekających nas nowości. Jakie problemy rozwiąże ENUM i jak będzie wyglądała jego implementacja? Sprawdźmy!

https://youtu.be/TI8Jo3Zh0kQ

Przykłady kodu użyte w materiale:

(kodem można pobawić się tu: https://3v4l.org/#focus=git.master)

Pure ENUM:

  1. <?php
  2. enum Fruit {
  3. case Apple;
  4. case Banana;
  5. case Orange;
  6. }
  7.  
  8. $fruit = Fruit::Orange;
  9. if ($fruit === Fruit::Banana) {
  10. http://www.php.net/echo 'no na pewno banan';
  11. }
  12.  
  13. // wyjątek - Fruit::Apple to obiekt klasy Fruit
  14. http://www.php.net/echo Fruit::Apple;


Backed ENUM:
  1. <?php
  2. enum Fruit: string {
  3. case Apple = 'jabłko';
  4. case Banana = 'banan';
  5. case Orange = 'pomarańcza';
  6.  
  7. // a tu dodatkowo metoda:
  8. public function canMakeJuice(): bool
  9. {
  10. return $this !== self::Banana;
  11. }
  12. }
  13.  
  14. http://www.php.net/echo Fruit::Apple->value; // jabłko
  15. http://www.php.net/var_dump(Fruit::Banana->canMakeJuice()); // false

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)