Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3941460
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T00:32:44+00:00 2026-05-20T00:32:44+00:00

This is more of a ‘How should I?’ rather than ‘How do I?’ question.

  • 0

This is more of a ‘How should I?’ rather than ‘How do I?’ question.

Generally, what is considered the best way to pass variables to an included file?

For example, let’s say I’m using a fragment for a menu, and want one of the menu items (the current one) to have a certain class name (this is a very generic sample – not something I’m actually using):

<?php
$links = array(
    array('text' => 'home', 'href' => 'home.php'),
    array('text' => 'about', 'href' => 'about.php'),
    array('text' => 'contact', 'href' => 'contact.php') 
);
?>
<ul>
<?php for($i = 0; $i < 3; $i++) : 
    $link = $links[$i];
    $is_active = ($i == $active_index);
?>
    <li><a <?=($is_active ? 'class="active"' : '')?> href="<?=$link['href']?>"><?=$link['text']?></a></li>
<?php endfor; ?>
</ul>

i’ll call the above ‘menu.inc.php’. obviously it’s looking for a variable (int) called $active_index to determine which link to give the ‘.active’ class to.

so – you could just define $active_index before calling the include, but this seems like poor practice to me since perhaps a variable of that name might have been defined for something else earlier and a later part of the script is still looking for it.

or – you could use an absolute path and append variables using a querystring (include 'menu.inc.php?active_index=1'), but again that seems like a bad idea since you might need the ‘real’ $_GET within any given include.

or – you could start each included file with ob_start and return ob_end_clean(), then use something like this to get the return:

function load_view($file, $variables){
  extract($variables);
  return include($file);
}
// passed like
<?=load_view('menu.inc.php', array('active_index' => 2))?>

but again this seems to have a number of cons (having to restructure all your include files accordingly with the ob functions and a return statement).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-20T00:32:44+00:00Added an answer on May 20, 2026 at 12:32 am

    I like an object for this, as described in this MVC stack post. In a file called viewMenu.class.php,

    class viewMenu
      {
      private $active_link;
    
      public function __construct ( $active_link )
        {
        $this->active_link = $active_link; 
        }
      //If the constructor doesn't work for you, try a "set" method.  
    
      public function view ()
        {
        $active_link = $this->active_link;
        include_once ( "menu.inc.php" );
        }
      }
    

    Defining $active_link inside the view method contains the variable scope of $active_link to within the method. Then call this code:

    $aViewMenu = new viewMenu( $active_link );
    $aViewMenu->view();
    

    However, I’m nearly new to MVC in PHP, and I welcome reproach.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This is more of an academic inquiry than a practical question. Are there any
This is more an observation than a real question: MS-Access (and VBA in general)
Ok this is more of a computer science question, than a question based on
EDIT: This question is more about language engineering than C++ itself. I used C++
This is more of an generic XML Schema question, but if and how do
This is more of a syntax question I'm trying to write a store procedure
This is more of a business-oriented programming question that I can't seem to figure
So this is IT more than programming but Google found nothing, and you guys
EDIT: This was formerly more explicitly titled: - Best solution to stop Kontiki's KHOST.EXE
During development I've seen xml read errors like this more than once: TestData.ReadFromXml: xml

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.