chesar
@chesar

Можно ли использовать во view для доступа к свойствам фигурные скобки{} ?

Допустим есть некая view
<ol class="list-body">
        <?php foreach($data as $item): ?>
        <li class="list-item">
            <div class="item-info">
                <span class="item-pubDate">
                    <?=$item{datePublicate} ?>
                </span>
                <span class="item-count"><i class="icon-comment"></i> <?=$item{comments}?> </span>
            </div>
            <a class="item-title"
               href="<?=$item{slug} ?>">
                <?=$item{title} ?>
            </a>
        </li>
        <?php endforeach; ?>
    </ol>

На сколько рационально так выводить переменные?
Нашел плюс в том, что view не надо беспокоится, что там передалось, объект или массив из контроллера, а есть ещё какие плюсы и минусы данного подхода? Является ли это нормальной практикой?
  • Вопрос задан
  • 2252 просмотра
Решения вопроса 2
Melkij
@Melkij
PostgreSQL DBA
@HaJIuBauKa, @mlnkv
php.net/manual/en/language.types.array.php
Both square brackets and curly braces can be used interchangeably for accessing array elements (e.g. $array[42] and $array{42} will both do the same thing in the example above).

Потому, пример синтаксически корректен. Не рекомендую так делать, но делать так можно.

Нашел плюс в том, что view не надо беспокоится, что там передалось, объект или массив из контроллера

Вообще-то, надо, потому что всё равно Fatal error: Cannot use object of type stdClass as array
А если в объекте реализован ArrayAccess, то не имеет значения, какими скобками обращаться к массиву. Но лучше квадратными, как более стандартными.
Ответ написан
Комментировать
rdifb0
@rdifb0
Программист, реалист
А еще у вас там целая телега notice-ов из-за неопределенных констант. Ибо ключи нужно в кавычки заключать. Плюс неоднозначность, потому что фигурные скобки еще используются чтобы обратится к определенному символу в строке, или разыменовывать переменную.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
mlnkv
@mlnkv
JavaScript Developer
а вы пробовали выполнить этот код? никаких ошибок не было?
Ответ написан
Комментировать
HaJIuBauKa
@HaJIuBauKa
Скобки могут быть квадратные. Или у вас там какой-то хитрый шаблонизатор.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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