POO в PHP - Создание объектов

Правилен этот способ создавать объекты и Ваш немедленный доступ в php?

foreach($settlements as $settlement){ 
    $settlement->txs = new CredoraxTransaction()->getUnsettledTxNew($settlement->currency);
}
0
задан 24.01.2017, 18:10
0 ответов

Она не правильна. Когда ошибка выполняет несколько линий этого типа va, которые должны выходить.

Правильная форма эта:

foreach($settlements as $settlement){ 
    $currency = $settlement->currency;
    $settlement = new CredoraxTransaction();
    $setelement = $settlement->getUnsettledTxNew($currency);
    $settlement->txs;
}

Хотя это линии кода больше, это более аккуратная форма и предотвращая ошибки.

0
ответ дан 03.12.2019, 17:36
  • 1
    Из-за qué deberí когда ошибка выходит?, inté rprete, произведя дерево expandirá создавая переменные, в которых он не нуждается, он не необходим, ни также dará ошибка, это, не упоминая dañ или создания переменных, средний программист só это может задерживать значение 4 переменных, в этом случае уже ты занимаешь 3, затрудняя comprensió n có я говорю. –  20.01.2017, 15:39

Sintácticamente хорошо, и функционирует, но затрудняет readibilidad кода, из-за того, что нарушает закон Demeter

Правильная форма была бы refactorizar код, создавая функции, которые приносили бы более быстрый доступ элемента CreadoraxTransaction

...
function get_unsettled_tx_for($element){
    $ctrans = new CreadoraxTransaction();
    return $ctrans -> getUnsettledTxNew ($element -> currency);
}
...
foreach($settlements as $settlement){ 
    $settelement -> txs = get_unsettled_txt_for ($settelement)
}
0
ответ дан 03.12.2019, 17:36
  • 1
    podrí чтобы заключать в () ... я имею доступ к члену класса в instanciació n... с PHP 5.4... нет? Пример: $settlement->txs = ( new CredoraxTransaction() )->getUnsettledTxNew($settlement->currency); –  20.01.2017, 19:09
  • 2
    Sí но если ты нуждаешься в том, чтобы использовать другой mé совсем на том же созданном объекте, не tendrí схвати ссылку на объект, это немного debitable, если ты считаешь, что ты идешь использовать объект в algú n момент, тогда ты создаешь переменную, иначе не, и ты это оставляешь такими каков $settlement->txs = ( new CredoraxTransaction() )->getUnsettledTxNew($settlement->currency); –  20.01.2017, 19:41

Теги

Похожие вопросы