简体   繁体   中英

PHP: Variable not accessible defined in include/require file using absolute path

I am finding difficulty in accessing a variable defined in the include file.

My include file is present in the root and it has a variable $x :

localhost/dir_name/include.php

I am including the include.php file in file.php present in the sub directory :

localhost/dir_name/sub_directory/file.php

But every time, the file.php gives the error of undefined variable $x

The weird thing is that when I use a relative path to include the include.php , it works perfectly. Like this:

include '../include.php';

ALSO, it works when using realpath($_SERVER['DOCUMENT_ROOT']) . Like this:

include $_SERVER['DOCUMENT_ROOT'].'\\dir_name\\include.php'

But it never works for the absolute path. I also tried making the variable global but didn't helped me and the include.php file is also included correctly. It is not giving me any other error except this undefined variable.

Before asking, I tried finding this on SO, but couldn't find the answer to this error.

I am currently using the realpath($_SERVER["DOCUMENT_ROOT"]) as an alternative.

localhost is not an absolute path. PHP reads the actual directories on your computer, not the ones from the URL.

Try echo realpath($_SERVER["DOCUMENT_ROOT"]) and you'll see what I mean.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM