Posts Tagged ‘перечисления’

Перечисления в PHP

Понедельник, Июль 7th, 2008

Часто ли вам приходилось сожалето о том, что в PHP нет перечислений как таковых?

Да, кто-то обходился конвенцией именования и получалось нечто вроде:

define( 'COLOR_RED', 'F00' );
define( 'COLOR_GREEN', '0F0' );
define( 'COLOR_BLUE', '00F' );

Или нечто вроде:

// данную переменную ЗАПРЕЩЕНО модифицировать
$colors = array(
    'red' => 'F00',
    'green' => '0F0',
    'blue' => '00F',
);

Но оба подхода имеют существенные недостатки:

  • В первом случае члены перечисления не образуют явной группировки
  • Во втором случае есть риск что переменная будет изменена
  • И в обоих этих случаях мы не можем делать проверку на тип переменной (type hinting)

Под катом предлагаю решение без вышеописанных недостатков…
(more…)