Здесь нет необходимости в объектной ориентации. Но switch
можно заменить гораздо более простой конструкцией. Если вы используете массив данных, вы можете даже пропустить функцию:
$apple_data = array(
'Fuji' => array(
'Color' => 'Yellowish green';
'Size' => 'medium';
'Origin' => 'Japan';
'Season' => 'October - January';
'AppleId' = 1234567890,
),
'Gala' => array(
'Color' => 'yellow';
'Size' => 'medium';
'Origin' => 'New Zealand';
'Season' => 'October - January';
'AppleId' => 1234598760,
),
...
);
Для доступа к атрибутам просто используйте:
$id = $apple_data["Granny_Smith"]["AppleId"]
Или, если вы действительно хотите все эти локальные переменные:
extract($apple_data["Granny_Smith"]);
// creates $Color, $Size, $Origin, $Season, $AppleId in local scope
Если вам действительно нужен синтаксис объекта, попробуйте:
$AppleProps = new ArrayObject($apple_data["Fuji"], 2);
print $AppleProps->Color;
Но так как яблоки ничего не делают, вы, вероятно, не хотите создавать класс или реальные объекты для них. (Черт, яблоки. Просто сидеть и ничего не делать.)