За последние 24 часа нас посетили 36715 программистов и 1708 роботов. Сейчас ищут 1065 программистов ...

помогите правильно вывести функцию

Тема в разделе "Прочие вопросы по PHP", создана пользователем TigerZaka, 3 сен 2012.

  1. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    Приветствую!
    Проблема в том, что используя данный код
    Код (Text):
    1. class user_form extends page_default {
    2.     function fform() {
    3.     ?>
    4.         <form method="post" action="">
    5.             <select>
    6.                 <option>1</option>
    7.                 <option>2</option>
    8.                 <option>3</option>
    9.             </select>
    10.         </form>
    11.     <?php  
    12.     }
    13. }
    14. $userform = new user_form();
    15. $userform->SetTitle('Регистрация пользователя');
    16. $userform->SetContent($userform->fform());
    17. $userform->Display();
    форма выводится поверх всего шаблона, а если вместо
    Код (Text):
    1. $userform->SetContent($userform->fform());
    вставить инфу в кавычках
    Код (Text):
    1. $userform->SetContent('<form>.....</form>');
    то все выводится как надо. Подскажите в чем ошибка, как правильно вызваться ф-ю в нужное место
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Просто вот такой синтаксис, как у тебя:
    Код (PHP):
    1. function fform() {
    2. ?>
    3.    <form method="post" action="">
    4.       <select>
    5.          <option>1</option>
    6.          <option>2</option>
    7.          <option>3</option>
    8.       </select>
    9.    </form>
    10. <?php
    11. } 
    Это равносильно echo. То есть когда ты вызываешь функцию, она у тебя получается не возвращает значение, а сразу выводит на экран. Можешь сделать так, например:
    Код (PHP):
    1. <?php
    2. function fform() {
    3.    $html = <<<HTML
    4.    <form method="post" action="">
    5.       <select>
    6.          <option>1</option>
    7.          <option>2</option>
    8.          <option>3</option>
    9.       </select>
    10.    </form>
    11. HTML;
    12.    return($html);
    13. }
    14. ?>
     
  3. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    аа.., забыл про return. Спасибо за подсказку! ))
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Не пишу ()

    Код (PHP):
    1. return$html;
    2.  
    3. return $html; 
    Обе работают.

    Также как и

    Код (PHP):
    1. echo$html;
    2.  
    3. echo $html;