Carl Hopwood
Carl Hopwood

Reputation: 43

Require once php function and variables

I am looking for some help using the PHP function. At the moment my website is structured like this:

index.php:

<?php   
require_once( 'page_elements.php' );
?>
<body>

<?php echo content();?>

</body>

page_elements.php:

<?php
function content() {
?>
<div class='main'> 
  <img class='main' src="<?=$ImgName?>"> </img> 
</div>
<?php
} ?>

if statement:

if (isset($_SESSION['basket_total']))
{

$basket_total = $_SESSION['basket_total'];

if($basket_total !== '0')
{

    $ImgName = 'img/basket.php';    

}
else
{

    $ImgName = 'img/basket_empty.php';

}
}

What I want to do is to be able to define $ImgName in an if statement that isn't involved in the function content() but if i include it in another file, include 'if_statement.php' or in another function then it doesn't recognise the variable.

Sorry, its my first time structuring a website like this and I am finding it a bit confusing.

Cheers in advance

Upvotes: 1

Views: 3045

Answers (2)

Chris Gastrell
Chris Gastrell

Reputation: 21

First of all, you don't close an an "img" tag with another "img" tag ...

function content(){
    echo'
    <div class="main">
        <img class="main" src="'.$imgname.'" alt="" title="">
    </div>
    ';
}

is the proper way of doing things. Now as to your question, I'm having trouble understanding your goal, but do you perhaps mean something a.la ...

function content(){
    $imgname = include "file.php";
    echo'
    <div class="main">
        <img class="main" src="'.$imgname.'" alt="" title="">
    </div>
    ';
}

and the if_statement.php would be something like ...

if(isset($_SESSION['basket_total'])){
    return $_SESSION['basket_total'];
}else{
    return "img/basket.php";
}

Upvotes: 2

Chris
Chris

Reputation: 5605

This will get around the current issue you are having, but I would do like Ionut Flavius Pogacian suggested above and look into an MVC

<?php   
    require_once( 'page_elements.php' );
    $image_name = "batman.jpg";
?>
<body>
    <?php echo content($image_name);?>
</body>

page_elements.php:

<?php
function content($image_name) {
?>
<div class='main'> 
  <img class='main' src="<?=$image_name?>" /> 
</div>
<?php
} ?>

Upvotes: 0

Related Questions