包含的变量不适用于PHP

时间:2009-08-11 15:40:43

标签: php include variables

好吧,所以这是非常基本的东西,我知道当有人告诉我答案时我会觉得很傻,但我不能为我的生活弄清楚为什么以下代码不是工作:

的index.php:

<?php include('config.php'); //this works fine. variables in this file are reached correctly - $_MYSQL is defined there ?>

<?php include($_MYSQL); ?>
<?php echo ($fruit);?>

db_config.php(这是$ _MYSQL链接到的,这没问题):

<?php 

$fruit = "apple";
echo($fruit);
?>

完整性config.php看起来像:

<?php 

$_MYSQL = 'http://'.$_SERVER['HTTP_HOST'].'/public_html/db_config.php';

$BASE_URL = 'http://'.$_SERVER['HTTP_HOST'].'/public_html/Opto10/';

?>

因为这些名称暗示代码是要联系这个然后连接到数据库的db_config.php,但由于某种原因,db_config文件中的变量似乎没有传递给index.php。奇怪的是include('config.php');工作完全正常,但在上面我在index.php中显示的代码“echo($ fruit);”不打印任何东西。 db_config.php中的同一行虽然(但我猜它确实意味着它包含在内)。不知何故,变量不会传递。您知道,如果这有所不同,db_config.php文件位于当前目录的父文件中。

我非常困惑,非常欢迎任何帮助。提前谢谢,

西蒙

你所拥有的就是我所有的PHP代码。

6 个答案:

答案 0 :(得分:5)

你不能像那样穿越HTTP

来自the manual

  

如果启用了“URL fopen wrappers”   PHP(它们是默认的   配置),你可以指定   要使用URL包含的文件(通过   HTTP或其他支持的包装器 - 请参阅   支持的协议/封装器列表   对于协议列表而不是   本地路径名。如果是目标服务器   将目标文件解释为PHP   代码,变量可以传递给   包含使用URL请求的文件   与HTTP GET一起使用的字符串。 :此   严格来说并不一样   包含文件和拥有的东西   它继承了父文件的变量   范围;脚本实际上是   在远程服务器上运行   结果然后被包括在内   本地脚本。

答案 1 :(得分:0)

如果与DB的连接失败,则变量中有false,所以echo false;就像回声''; - &GT;你什么也看不见。

尝试var_dump($ variable);正如Manzoo Ahmed向你建议的那样,在$ fruit上。

答案 2 :(得分:0)

<?php
$_MYSQL = "db_config.php';
?>

或只是将include更改为

<?php
include('db_config.php');
?>

答案 3 :(得分:0)

在index.php中

<?php

defined("BASEDIR", dirname(__FILE__));
defined("DIRMYSQL", BASEDIR . "/public_html/db_config.php");

?>

答案 4 :(得分:0)

您正在尝试包含一个您无法做到的网页。

包括('http://some_domain/public_html/db_config.php')aint开始工作......

您希望在目录中包含文件:

包括( 'C:/some_directory/public_html/db_config.php')

答案 5 :(得分:0)