Переменная из функции

Тема в разделе "Как сделать...", создана пользователем monah, 11 апр 2015.

Статус темы:
Закрыта.
  1. monah

    monah

    Регистр.:
    21 мар 2009
    Сообщения:
    165
    Симпатии:
    47
    добрый....
    есть функция для личных сообщений (osclss) в одном файле
    PHP:
    function osclass_pm_admin_menu() {
           
    $newPMs ModelPM::newInstance()->getRecipientMessages(011'pm_id''DESC');
           
    $newPMdrafts ModelPM::newInstance()->getDrafts(0'pm_id''DESC');
           
    $countPMs count($newPMs);
           
    $countPMdrafts count($newPMdrafts);

               echo 
    '<h3><a href="#">' pmAdmin() . __('\'s PM Box','osclass_pm') .  ' (' $countPMs ' ' __('New','osclass_pm') .')</a></h3><ul>';

               echo 
    '<li class="" ><a href="' osc_admin_render_plugin_url('osclass_pm/admin-inbox.php') . '" > &raquo; '__('Inbox''osclass_pm') . ' (' $countPMs ')</a></li>';
               if(
    pmDrafts()){
               echo 
    '<li class="" ><a href="' osc_admin_render_plugin_url(osc_plugin_folder(__FILE__) . 'admin-drafts.php') . '" >' __('Drafts''osclass_pm') . ' (' $countPMdrafts ')</a></li>';
               }
               echo 
    '<li class="" ><a href="' osc_admin_render_plugin_url('osclass_pm/admin-outbox.php') . '" >&raquo; ' __('Outbox''osclass_pm') . '</a></li>';
               echo 
    '</ul>';
               echo 
    '<h3><a href="#">' __('OSClass PM Settings''osclass_pm') . '</a></h3><ul>';

               echo 
    '<li class="" ><a href="' osc_admin_render_plugin_url('osclass_pm/admin.php') . '" > &raquo; '__('Configure''osclass_pm') . '</a></li>' .
               
    '<li class="" ><a href="' osc_admin_render_plugin_url('osclass_pm/help.php') . '" >&raquo; ' __('F.A.Q. / Help''osclass_pm') . '</a></li>';
               echo 
    '</ul>';
        }
    мне отсюда надо count($newPMs);
    в другом файле я вставил
    PHP:
     <span><?php echo '<a class="list-group-item" href="' osc_render_file_url('index.php?page=custom&file=osclass_pm/user-inbox.php') . '" >' __('Inbox''osclass_pm') . ' (' count($newPMs) . ')</a>'?></span>
    но count($newPMs) не забирает ифнормацию(((
    подскажите что делать?
     

    Вложения:

    • index.zip
      Размер файла:
      4,7 КБ
      Просмотров:
      3
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.547
    Симпатии:
    1.419
    И не заберётся, переменные объявленные внутри функции, вне этой функции видны не будут, если не предпринять определённых действий, о которых я вам не скажу, чтобы не было потом плохого кода :)

    Правильный подход - создать еще одну функцию:
    PHP:
    # наверное этот код стоит вставить в тот-же файл где объявлена osclass_pm_admin_menu()
    function count_newPMs() {
           
    $newPMs ModelPM::newInstance()->getRecipientMessages(011'pm_id''DESC');
           return 
    count($newPMs);
    }
    В вывод добавляете count_newPMs()
    PHP:
     <span><?php echo '<a class="list-group-item" href="' osc_render_file_url('index.php?page=custom&file=osclass_pm/user-inbox.php') . '" >' __('Inbox''osclass_pm') . ' (' count_newPMs() . ')</a>'?></span>
     
    monah нравится это.
  3. monah

    monah

    Регистр.:
    21 мар 2009
    Сообщения:
    165
    Симпатии:
    47
    PHP:
    function count_newPMs() {
           
    $newPMs ModelPM::newInstance()->getRecipientMessages(osc_logged_user_id(), 11'pm_id''DESC');
             
    $countPMs count($newPMs);
            return 
    count($newPMs);
    }
    вот так заработало))))
     
    Последнее редактирование: 13 апр 2015
Статус темы:
Закрыта.