【发布时间】: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!"将如何工作? -
在包含文件中,赋值不在函数内,是吗?
-
您展示给我们的肯定不止这些。这太微不足道了,不能失败。