2012-10-30 101 views
22

所以我想知道是否有可能从一个特定的php文件中获取变量时,变量名称在多个php文件中使用。 一个例子是这样的:PHP,从另一个php文件变量

<header> 
<title> 
    <?php echo $var1; ?> 
</title> 
</header> 

具有page1.php中$var1 = 'page1' 使page2.php具有$var1 = 'page2'

footer.php应具有<a href="">$var1 from page1</a><a href="">$var1 from page2</a>

确定的例子是有点抽象的,但是短我可以做到。我想你会得到我所得到的!所以这是在我后的页脚!有任何解决方案?

+0

除非你正在访问的全局变量是在已经包含的文件,你不能得到它的价值。 – jondinham

+0

调查范围和全局 - http://php.net/manual/en/language.variables.scope.php –

回答

54

可以,但在你上的变量包括将覆盖该变量在你的第一个:

myfile.php

$var = 'test'; 

mysecondfile.php

$var = 'tester'; 

test.php

include 'myfile.php'; 
echo $var; 

include 'mysecondfile.php'; 
echo $var; 

输出:

测试

测试仪

我建议使用不同的变量名称。

+0

换句话说,这不是真的可能吗? 对于这件事情没有必要,只是会给我整洁的代码! –

+0

这个问题可能是你的设计。你究竟想要做什么? –

+1

嗯,我试图在两个不同的位置回显相同的文本,一个位于实际页面内,另一个位于通用页脚(footer.php)上。基本上我正在使用变量进行简单更新! –

21

您还可以使用会话传递小部分信息。你需要有session_start();在使用其他会话的PHP页面顶部的变量不会accessable在第二页使用include 'page1.php'

page1.php中

<?php 

    session_start(); 
    $_SESSION['superhero'] = "batman"; 

?> 
<a href="page2.php" title="">Go to the other page</a> 

使page2.php

<?php 

    session_start(); // this NEEDS TO BE AT THE TOP of the page before any output etc 
    echo $_SESSION['superhero']; 

?> 
+1

我真的不明白为什么这会降低选票。这是一个非常有效的选择,包括OP可能没有考虑过 – Chris

2

是一种选择但它可能会产生未定义变量的警告和错误。
三种方法可以使用一个PHP文件的变量在另一个PHP文件:

  • 使用会话从一个页面传递变量到另一个
    方法:
    首先你必须启动会议这两个文件使用php命令

    sesssion_start();
    然后在第一个文件中考虑你有一个变量
    $ x ='var1';

    现在使用这个分配x到一个会话变量的值$:
    $ _SESSION [ '变种'] = $ X;
    任何其他PHP文件现在获得价值:
    $ Y = $ _ SESSION [ '变种']; // $ y的任何声明的变量

  • 使用GET方法和点击获取变量链接
    方法

    <a href="page2.php?variable1=value1&variable2=value2">clickme</a>
    由$ _GET功能越来越则page2.php中文件中的值:
    $x=$_GET['variable1'];//value1 be stored in $x
    $y=$_GET['variable2'];//vale2 be stored in $y

  • ,如果你想使用按钮来传递变量值然后ü可以用下面的方法使用它:在第二个PHP

    $x='value1'
    <input type="submit" name='btn1' value='.$x.'/>

    $var=$_POST['btn1'];

0

你也可以使用的file_get_contents

$url_a="http://127.0.0.1/get_value.php?line=a&shift=1&tgl=2017-01-01"; 
$data_a=file_get_contents($url_a); 

echo $data_a; 
+0

这将以字符串的形式读取整个文件...以获取特定变量的值将需要额外的处理。 – TemporalWolf

+0

看到一些“附加处理”会很有趣, – Aloha

相关问题