Advertisement
xenoside

enum test

Mar 28th, 2023 (edited)
588
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.38 KB | None | 0 0
  1. <?php
  2.  
  3. enum PureStatus {
  4.     case OK;
  5.     case FAILURE;
  6.     case TOOMANYREQUEST;
  7.  
  8.     public function label(): string {
  9.         return match($this) {
  10.             self::OK => '200',
  11.             self::FAILURE => '404',
  12.             self::TOOMANYREQUEST => '429',
  13.         };
  14.     }
  15. }
  16.  
  17. $puredata = PureStatus::FAILURE;
  18.  
  19. echo PureStatus::FAILURE->name, "\n";
  20. echo PureStatus::FAILURE->label(), "\n";
  21. echo serialize($puredata), "\n";
  22. echo json_encode($puredata), "\n"; // error
  23. print_r($puredata);
  24. var_dump($puredata);
  25.  
  26. echo "---\n";
  27.  
  28. enum NamedStatus: string {
  29.     case OK = '200';
  30.     case FAILURE = '404';
  31.     case TOOMANYREQUEST = '429';
  32. }
  33.  
  34. $nameddata = NamedStatus::FAILURE;
  35.  
  36. echo NamedStatus::FAILURE->name, "\n";
  37. echo NamedStatus::FAILURE->value, "\n";
  38. echo serialize($nameddata), "\n";
  39. echo json_encode($nameddata), "\n"; // ->value
  40. print_r($nameddata);
  41. var_dump($nameddata);
  42.  
  43.  
  44. enum MyAnswerStatus: string {
  45.     case OK = 'OK';
  46.     case FAILURE = 'FAILURE';
  47.     case TOOMANYREQUEST = 'TOOMANYREQUEST';
  48.  
  49.     public function code() {
  50.         return match($this) {
  51.             self::OK => 200,
  52.             self::FAILURE => 404,
  53.             self::TOOMANYREQUEST => 429,
  54.         };
  55.     }
  56.    
  57.     public function message() {
  58.         return match($this) {
  59.             self::OK => '요청이 잘 수행되었습니다.',
  60.             self::FAILURE => '문제가 발생했습니다.',
  61.             self::TOOMANYREQUEST => '짧은시간내에 너무 많은 요청으로 인해 차단되었습니다.',
  62.         };
  63.     }
  64. }
  65.  
Tags: enum
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement