carry0987
carry0987

Reputation: 127

PHP require files from multiple directory

I have try this answer about require multiple php files, Now I try to require multiple files from multiple directory,but something got error..

this is my directory tree:

test
 -config
  --config_global.php
 -source
  --class
   ---class_core.php
   ---class_load.php
   ---class_test.php
  --include
   ---include_meta.php

class_core.php

<?php
require __DIR__.'/../../config/config_global.php';

class_load.php

<?php
class Load {
    public function loadClass() {
        $this->files = func_get_args();
        foreach($this->files as $file) {
            require __DIR__."/$file.php";
        }
    }

    public function loadInclude() {
        $this->files = func_get_args();
        foreach($this->files as $file) {
            require  __DIR__."/include/$file.php";
        }
    }
}

class_test.php

<?php
$sql = 'SELECT title FROM article WHERE id = 1';
$result = $con->query($sql);

include_meta.php

<?php
$sql = 'SELECT title FROM article WHERE id = 1';
$result = $con->query($sql);

config_global.php

<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_NAME', 'messageboard');
define('DB_PORT', '3306');

$con = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, DB_PORT);

index.php

<?php
require dirname(__FILE__).'/source/class/class_core.php';
require dirname(__FILE__).'/source/class/class_load.php';
$load = new Load;
$load->loadClass('class_test');
$load->loadInclude('include_meta');

My question is, why it can't use the $con variable in class_test.php and include_meta.php from config_global.php ?

It display the error:

Undefined variable: con in /source/class/class_test.php
Undefined variable: con in /source/include/include_meta.php

Upvotes: 0

Views: 81

Answers (1)

S&#233;bastien S.
S&#233;bastien S.

Reputation: 1544

Try accessing to your $con variable from index.php, it will probably work.

You can't access to your variable after ->loadClass() and ->loadInclude() because you enter inside functions.

Maybe you will be able to access to your $con variable in there if you use $GLOBALS['con'].

Upvotes: 1

Related Questions