MR.masoud
MR.masoud

Reputation: 127

Does include work like a function in php?

I have a PHP file as seen below that is a config file. When I use return in my code and var_dump(include 'config.php'); I see an array, but when I delete return the result is

int 1

Does include work like a function in this case? And why I have to use return here?

<?php
return array(
'database'=>array(
    'host'=>'localhost',
    'prefix'=>'cshop_',
    'database'=>'finalcshop',
    'username'=>'root',
    'password'=>'',
),
'site'=>array(
    'path'=>'/CshopWorking',
)
);

Upvotes: 1

Views: 71

Answers (3)

Hasse Bj&#246;rk
Hasse Bj&#246;rk

Reputation: 1601

An include fetches PHP-code from another page and pastes it into the current page. It does not run the code, until your current page is run.

Use it like this:

config.php

$config = array(
    'database'=>array(
        'host'=>'localhost',
        'prefix'=>'cshop_',
        'database'=>'finalcshop',
        'username'=>'root',
        'password'=>'',
    ),
    'site'=>array(
        'path'=>'/CshopWorking',
    )
);

And in your file, say index.php

include( 'config.php' );
$db = new mysqli( 
    $config['database']['host'], 
    $config['database']['username'], 
    $config['database']['password'], 
    $config['database']['database'] );

This way, you do not need to write all that stuff into every file and it is easy to change!

Here are some statements with similarities:

  1. include - insert the file contents at that point and run it as if it were a part of the code. If the file does not exist, it will throw a warning.

  2. require - same as include, but if the file is not found an error is thrown and the script stops

  3. include_once - same as include, but if the file has been included before, it will not do so again. This prevents a function declared in the included file to be declared again, throwing an error.

  4. require_once - same as include_once, but throws an eeror if the file was not found.

Upvotes: 2

Byson
Byson

Reputation: 550

First off, include is not a function; it is a language construct. What that means is something you should Google for yourself.

Back to your question: what include 'foo.php does is literally insert the content of 'foo.php' into your script at that exact point.

An example to demonstrate: say you have two files, foo.php and bar.php. They look as follows: foo.php:

<?php
echo "<br>my foo code";
include 'bar.php';
$temp = MyFunction();

bar.php:

<?php
echo "<br>my bar code";
function MyFunction()
{
    echo "<br>yes I did this!";
}

This would work, because after evaluating the include statement, your foo.php looks like this (for your PHP server):

<?php
echo "<br>my foo code";
echo "<br>my bar code";
function MyFunction()
{
    echo "<br>yes I did this!";
}
$temp = MyFunction();

So your output would be:

my foo code
my bar code
yes I did this!

EDIT: to clarify further, if you create variables, functions, GLOBAL defines, etc. in a file, these will ALL be available in any file in which you include that file, as if you wrote them there (because as I just explained, that is basically what PHP does).

Upvotes: 0

dev0
dev0

Reputation: 1057

The return value of includeis either "true"(1) or "false". If you put a return statement in the included file, the return value will be whatever you return. You can then do

$config = include config.php';

and $configwill then contain the values of the array you returned in config.php.

Upvotes: 2

Related Questions