代码之家  ›  专栏  ›  技术社区  ›  NotSimon

包含的变量在PHP中不起作用

  •  1
  • NotSimon  · 技术社区  · 16 年前

    好吧,这是一个非常基本的问题,我知道当有人告诉我答案时,我会觉得很傻,但我一辈子都搞不明白为什么下面的代码不起作用:

    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(这是$\u 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。奇怪的是包括('config.php');工作非常好,但是在我上面在index.php中显示的代码中,“echo($fruit);”没有打印任何内容。不过,db_config.php中的同一行是这样的(所以我想这确实意味着它包含在内)。不知怎的,这些变量没有传递出去。正如您所知,如果这会产生影响,db_config.php文件位于当前目录的父目录中。

    西蒙

    上面的内容就是我所有的php代码。

    6 回复  |  直到 16 年前
        1
  •  5
  •   Peter Bailey    16 年前

    你不能像那样跨HTTP进行内联

    从…起 the manual

    PHP(它们是默认的 配置),您可以指定 使用URL包含的文件(通过 支持的协议/包装器列表 用于协议列表)而不是 本地路径名。如果目标服务器 代码中,变量可以传递给 严格说来不一样吗 包括文件和 它继承父文件的变量 范围剧本实际上是 在远程服务器和 本地脚本。

        2
  •  0
  •   mere-teresa    16 年前

    如果到DB的连接失败,那么变量中有false,因此echo false;就像回声一样--&燃气轮机;你什么也看不见。

    尝试var_dump($variable);就像Manzoo Ahmed向你建议的那样,用$fruit。

        3
  •  0
  •   pjau    16 年前
    <?php
    $_MYSQL = "db_config.php';
    ?>
    

    或者只是将include更改为

    <?php
    include('db_config.php');
    ?>
    
        4
  •  0
  •   andres descalzo    16 年前

    <?php
    
    defined("BASEDIR", dirname(__FILE__));
    defined("DIRMYSQL", BASEDIR . "/public_html/db_config.php");
    
    ?>
    
        5
  •  0
  •   Bingy    15 年前

    包括(' http://some_domain/public_html/db_config.php

    包括('C:/some\u directory/public\u html/db\u config.php')

        6
  •  0
  •   M. Suleiman    14 年前