Что означает эта структура в программировании открытой корзины "$ {$ module ['code']};"? - PullRequest
2 голосов
/ 05 мая 2011

Привет, я новичок в opencart и в настоящее время сталкиваюсь с одной проблемой, которая не в состоянии определить, почему это происходит "Примечание: неопределенная переменная: dailydeal в ~ / template / common / column_right.tpl в строке 3"

В строке № 3 в этом файле записан следующий код:

<?php echo ${$module['code']}; ?>

Может ли кто-нибудь сказать мне, что означает этот синтаксис. или как я могу решить эту проблему.

Заранее большое спасибо.

Ответы [ 2 ]

2 голосов
/ 05 мая 2011

Это переменная переменная , по вашей ошибке я могу сказать, что:

echo $module['code']; // dailydeal

${$module['code']} является эквивалентом $dailydeal (содержимое переменной).


Чтобы избежать уведомлений о выдаче OpenCart, вы можете либо снизить уровень , сообщающий об ошибках , например:

error_reporting(E_ALL & ~E_NOTICE);

, либо просто исправить уведомление, добавив isset() проверка:

if (isset(${$module['code']})) {
    // do stuff
}
0 голосов
/ 05 мая 2011

см. Эту статью переменные переменные там написано

Чтобы использовать переменные переменные с массивами, необходимо решить проблему неоднозначности.То есть, если вы пишете $$ a 1 , то парсер должен знать, хотите ли вы использовать $ a 1 в качестве переменной или если вы хотели $$ a в качестве переменнойа затем индекс 1 из этой переменной.Синтаксис для устранения этой неоднозначности: $ {$ a 1 } для первого случая и $ {$ a} 1 для второго.

также прочитайте языковая переменная

...