2011-02-12 2 views
1

Рискуя собственной неловкости, может кто-нибудь сказать мне, как использовать return здесь:Возвращает массив из функции PHP для Smarty

function dayCount() { 

    for ($dayBegin = 1; $dayBegin < 32; $dayBegin++) 
    { 
     "<option value=\"".$dayBegin."\">".$dayBegin."</option>"; 
    } 
} 

Моя проблема заключается в том, что я передаю эту функцию для Smarty с помощью

$dayCount = dayCount(); 
$smarty->assign('dayCount', $dayCount); 

и

{$dayCount} 

но вместо HTML идет прямо в буфер, прямо Befo re <html> (спасибо Хэмиш), а не внутри элемента HTML, который я хочу.

Любая помощь по этому вопросу?

ответ

2

Вы должны создать оператор возврата

function dayCount() { 
    $return = array(); 
    for ($dayBegin = 1; $dayBegin < 32; $dayBegin++) 
    { 
     $return[] = "<option value=\"".$dayBegin."\">".$dayBegin."</option>"; 
    } 
    return $return; 
} 

Хотя это наращивает массив, как вы просили. Когда вы выводите его, вам нужно будет его развязать.

implode('', $dayCount); 

Или иначе, создайте строку вместо массива.

+0

Джейкоб, вы прибивали его! Большое спасибо за помощь - работает. Я попробовал несколько версий, используя 'return', но они всегда выводят 'array' -' implode' всегда отсутствовал !! – pepe

Смежные вопросы