2012-10-30 100 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

相關問題