Lightning
Трудоголик
Структуры и PHP
Ассоциативные массивы безусловно очень удобная вещь. Но что-то стало мне не хватать в PHP обычных структур, как в C. Ведь структуры позволили бы быстро находить дурацкие ошибки типа: $my_array['keyy'] вместо $my_array['key'].
Вопросы:
1. Используете ли Вы по возможности объекты с открытыми данными-членами вместо ассоциативных массивов?
2. Используете ли Вы по возможности объекты с закрытыми данными-членами вместо ассоциативных массивов?
3. Что Вы можете посоветовать для локализации ошибок типа $my_array['keyy'] вместо $my_array['key'].
4. Написал простенький тест, сравнивающий время на создание ассоциативного массива и время на создание объекта с такими же полями. Получилось, что объект создается примерно в 5 раз медленнее. Но это не оценивает влияние на производительность в случае, если объекты будут использоваться вместо массивов во всем приложении. Я думаю, что оно мизерное, но не знаю. Может Вы знаете?
Ассоциативные массивы безусловно очень удобная вещь. Но что-то стало мне не хватать в PHP обычных структур, как в C. Ведь структуры позволили бы быстро находить дурацкие ошибки типа: $my_array['keyy'] вместо $my_array['key'].
Вопросы:
1. Используете ли Вы по возможности объекты с открытыми данными-членами вместо ассоциативных массивов?
PHP:
//...
$my_structure = new MyStructure();
$my_structure->field1 = $value1;
$my_structure->field2 = $value2;
//...
PHP:
//...
$my_structure = new MyStructure();
$my_structure->set_field1($value1);
$my_structure->set_field2($value2);
//...
4. Написал простенький тест, сравнивающий время на создание ассоциативного массива и время на создание объекта с такими же полями. Получилось, что объект создается примерно в 5 раз медленнее. Но это не оценивает влияние на производительность в случае, если объекты будут использоваться вместо массивов во всем приложении. Я думаю, что оно мизерное, но не знаю. Может Вы знаете?
