【问题标题】:Value of PHP variables not transferring with include statementPHP 变量的值不使用 include 语句传输
【发布时间】:2014-11-02 07:04:53
【问题描述】:

好吧,我知道我对此很愚蠢,但我似乎无法弄清楚我是怎么做到的。

我在一个单独的 .php 文件中有用于社交媒体链接的变量,这样我的客户就可以更改它们而无需查看太多代码。

我将该 .php 文件包含在我希望链接所在的正常代码中。但是,由于某种原因,变量的值没有被传输。我什至试图制作一个“全局”变量。这是我的代码。

文件:socialMediaURLs.php

<?php

    global $facebook = 'https://www.facebook.com/MenCoachingMen'; 
    $googlePlus = 'https://plus.google.com/104275309033865331192/posts';
    $twitter = 'https://twitter.com/MenCoachingMen';
    $rss = 'http://mencoachingmen.org/category/podcast/feed/';
    $vimeo = 'https://vimeo.com/mencoachingmen';
    $youtube = 'https://www.youtube.com/channel/UCy_Pth5x-O7rcX9nMx1e8qw';

?>

文件:socialLinks.php

<?php include './socialMediaURLs.php'; ?>

<div class="social_links_wrapper">

    <a href="<?php echo $facebook;?>">
        <div class="sl_facebook">
            <i class="fa fa-facebook fa-5x"></i>
        </div>
    </a>

    <a href="<?php echo $googlePlus;?>">
        <div class="sl_googlePlus">
            <i class="fa fa-google-plus fa-5x"></i>
        </div>
    </a>    

    <a href="<?php echo $twitter;?>">
        <div class="sl_twitter">
            <i class="fa fa-twitter fa-5x"></i>
        </div>
    </a>

    <a href="<?php echo $rss;?>">
        <div class="sl_rss">
            <i class="fa fa-rss fa-5x"></i>
        </div>
    </a>

    <a href="<?php echo $vimeo;?>">
        <div class="sl_vimeo">
            <i class="fa fa-vimeo-square fa-5x"></i>
        </div>
    </a>

    <a href="<?php echo $youtube;?>">
        <div class="sl_youtube">
            <i class="fa fa-youtube fa-5x"></i>
        </div>
    </a>

</div>

我进行了这样的测试:

<?php 
    if($facebook){
        echo $facebook;
    }else{
        echo 'Facebook NULL';
    }
?>

我把它放在include 语句之后和其余代码之前。它打印出“Facebook NULL”。所以,我知道该值没有被传输。现在,如果我在包含的 .php 文件(存储变量的位置)中放入 echo "Hello World!"; 行,“Hello World!”确实在屏幕上打印出来。所以,我知道文件被正确包含(即路径正确)。

然后我将此代码放在“包含”之后和其余代码之前:

$facebook = 'https://www.facebook.com/MenCoachingMen'; 

当我这样做时,URL 会包含在页面中。所以,我知道我在代码中的 php 语句是正确的。这意味着它必须是包含变量后的变量值的传输。请帮忙。我知道这一定是某个地方的愚蠢错误。谢谢你。

【问题讨论】:

  • global 关键字只在函数内部使用,它允许函数访问全局变量。在函数外部分配的变量是自动全局的(它们会在什么其他范围内)?
  • 你有错误报告吗?您可能会发现包含文件的路径错误。
  • @KaiQing 如果路径错误,echo "Hellow World!" 将如何工作?
  • 在包含文件中,赋值不在函数内,是吗?
  • 您展示给我们的肯定不止这些。这太微不足道了,不能失败。

标签: php variables include


【解决方案1】:
<?php include 'socialMediaURLs.php'; ?> <--- top main public_html/www
<?php include 'directory1/socialMediaURLs.php'; ?> <-- one folder deep
<?php include 'directory1/directory2/socialMediaURLS.php'; ?> <-- two folders deep

//calling a file FROM two folders deep TO A FILE IN the root folder!    
<?php include('../../socialMediaURLS.php'; ?>  <--- main index public_html/www
//ETC......
<?php include('../../directory1/socialMediaURLS.php'; ?>

我希望这会有所帮助。把它想象成 DIR 和 CD 命令。

【讨论】:

    【解决方案2】:

    必须在函数内部使用全局变量。

    function name(){
        global $globalvar = "some info";
    }
    

    将变量 OUT 传递到脚本中。您不能使用全局变量将变量传递给其他脚本。考虑使用 $_SESSION['name'] 变量在脚本之间传递变量。

    http://php.net/manual/en/book.session.php

    【讨论】:

      猜你喜欢
      • 2016-03-05
      • 1970-01-01
      • 2012-01-18
      • 2013-03-05
      • 1970-01-01
      • 2011-05-25
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多