Coderama
Coderama

Reputation: 187

Include PHP file with parameter

newbie in PHP here, sorry for troubling you.

I want to ask something, if I want to include a php page, can I use parameter to define the page which I'll be calling?

Let's say I have to include a title part in my template page. Every page has different title which will be represented as an image. So,

is it possible for me to call something <?php @include('title.php',<image title>); ?> inside my template.php?

so the include will return title page with specific image to represent the title.

thank you guys.

Upvotes: 0

Views: 5545

Answers (4)

Reactgular
Reactgular

Reputation: 54771

An included page will see all the variables for the current scope.

$title = 'image title';
include('title.php');

Then in your title.php file that variable is there.

echo '<h1>'.$title.'</h1>';

It's recommended to check if the variable isset() before using it. Like this.

if(isset($title))
{
    echo '<h1>'.$title.'</h1>';
}
else
{
    // handle an error
}

EDIT:

Alternatively, if you want to use a function call approach. It's best to make the function specific to activity being performed by the included file.

function do_title($title)
{
     include('title.php');  // note: $title will be a local variable
}

Upvotes: 4

Hydra IO
Hydra IO

Reputation: 1557

The included page will already have access to those variables defined prior to the include. If you require include specific variables, I suggest defining those variables on the page to be included

Upvotes: 0

Waleed Khan
Waleed Khan

Reputation: 11467

In your included file, you could do this:

<?php
return function($title) {
    do_title_things($title);
    do_other_things();
};

function do_title_things($title) {
    // ...
}

function do_other_things() {
    // ...
}

Then, you could pass the parameter as such:

$callback = include('myfile.php');
$callback('new title');

Another more commonly used pattern is to make a new scope for variables to be passed in:

function include_with_vars($file, $params) {
    extract($params);
    include($file);
}

include_with_vars('myfile.php', array(
    'title' => 'my title'
));

Upvotes: 0

Kermit
Kermit

Reputation: 34055

Not sure if this is what you're looking for, but you can create a function to include the file and pass a variable.

function includeFile($file, $param) {
    echo $param;
    include_once($file);
}

includeFile('title.php', "title");

Upvotes: 1

Related Questions