Как отобразить вывод из фрагмента без использования эха - PullRequest
0 голосов
/ 07 июня 2011

Документация по фрагментам в modx: http://rtfm.modx.com/display/revolution20/Snippets

В верхней части документа написано: Обратите внимание, что мы возвращали код, а не выводили его содержимое.Никогда не используйте echo в сниппете - всегда возвращайте результат.

Это ничего не отображает:

return $product_attribute $product_info[0][$column_name];

Это отображает:

echo $product_attribute $product_info[0][$column_name];

Если я не могу отобразить содержимое, как заставить его распечатать на html-странице?

Ответы [ 3 ]

3 голосов
/ 07 июня 2011

Это в основном означает, что вы можете echo значение returned вместо echo значения в самой функции. При программировании ООП эхо (или печать) на экране строго контролируется.

Например, у меня есть эта функция

function testExample($var) {
    return $var*2;
}

Так что, когда мне нужно повторить это, мне просто нужно

echo testExample(5);

Вместо этого (плохая практика)

function testExample($var) {
    echo $var*2;
}

Причина в том, что когда вы печатаете значение в функции, вы можете использовать эту функцию только для печати значения, которое не для повторного использования . Но, вернув его, вы теперь можете использовать его для печати, или присвоения другой переменной, или для пересчета.

0 голосов
/ 07 июня 2011

return используется для возврата значений из функции / метода и т. Д. Функциональность snippet в modx на самом деле является просто оболочкой функции / класса.

0 голосов
/ 07 июня 2011

Из того, что я могу понять из примечания, существует соглашение не использовать echo внутри функции, а скорее возвращать значение и, возможно, отображать его впоследствии.

Другие возможности печати будут:1004 *

print $your_variable;

или die($your_variable);

...