Пожалуйста, спасите меня от себя (или убедите меня, что я не полностью заблуждаюсь)
У меня появилась привычка писать код примерно так:
function foo($aUserObject) {
$theUserUID = $aUserObject->uid;
$aDeepValue = $aUserObject->property[123][456];
[more code, in which much use is made of $theUserUID and $aDeepValue]
}
Моя стратегия, вероятно, очевидна: я придерживаюсь мнения, что интерпретатору PHP будет легче обрабатывать ссылку на переменную, чем постоянно копаться в объекте, чтобы найти интересующую меня вещь, поэтому мне следует получать некоторое преимущество в производительности. Кроме того, мой код, возможно, немного более свободен от ошибок и понятен (если я помню значения имен переменных), так как я в основном пишу простые имена переменных, а не более длинные и более сложные ссылки на объекты / массивы, где мой пальцы, скорее всего, поскользнутся. Я понимаю, что для этого есть цена - теперь существует две копии $aUserObject->uid
и $aUserObject->property[123][456]
, и, если эти значения большие, дополнительные затраты памяти могут возрасти. Но в настоящее время я готов заплатить эту цену в обмен на (предполагаемые) льготы.
Или, в любом случае, я сам себе это говорю, основываясь на своей наивной теории о том, как работает PHP. Но реальность, особенно когда внедряются инструменты кэширования кода операции, такие как APC, может быть совершенно другим вопросом. Есть ли более информированные мнения, которые могут подтолкнуть меня так или иначе?
Спасибо!