2014-01-08 37 views
1

我有index.php其中有include("calendar.php")index.php包含可在calendar.php內訪問的$passdate字段。 我也有include("calendarnew.php")裏面calendar.php,我想再次通過$passdate領域。它沒有得到它,因爲它實際上駐留在計算所在的index.php之內。將變量傳遞給包含文件以供在另一個文件中使用

我希望這不是太混亂。如何使用include語句將派生字段從一個文件傳遞到另一個文件?

我收到了一些很好的答案,但我不認爲我很清楚。第一個文件使用include語句調用第二個文件。但是,第二個是使用href調用第三個。這會導致第1個文件中的變量在第3個文件中不可訪問。我希望澄清事情。謝謝

+0

在$ _SESSION中保存$ passdate ... – user1844933

+0

據我所知,如果在聲明變量後包含該文件,那麼應該沒事 –

回答

1

a.php只會

$b = "this_from_a"; 
    include("t1.php"); 

t1.php

echo "<a href=t2.php?var=".$b.">link</a>"; 

T2。PHP

echo $_GET['var']; 

OUTPUT:

this_from_a 

WAY2:
使用會話。

+0

我認爲你的例子與我所尋找的相反。我不想在t1和t2中使用變量。我想要在t1和t2中使用a中的變量。那就是如果我正確地閱讀你的例子。 – user3125362

+0

@ user3125362:我編輯了我的答案。我想你已經得到了你在找的東西。 –

+0

我看到你在說什麼,但我只使用一個include語句。第二個是href聲明。你能告訴我如何使用這個組合,請 – user3125362

0

當您在PHP中包含文件時,在運行時PHP解釋器會創建一個大文件。凡是有「include()」或「require()」功能的地方,這些文件的內容都會插入到那裏。所以,實際上,在運行時你基本上只會得到一個文件。因此,在index.php文件頂部聲明的變量應該始終可以訪問。

說了這話之後,請注意變量的範圍。例如,如果您在index.php文件的頂部聲明一個變量,並嘗試在包含在index.php文件中的另一個文件中的函數內引用該變量,那麼這將不起作用,因爲您正在查找本地變量在一個實際上是一個全局變量的函數中。爲了解決這個問題,你使用「全局」關鍵字來表示某個變量指示器應該指向全局變量。

例如:

<?php 
$my_var = 1; 

function my_funct() { 
    global $my_var; 

    print $my_var; // Will print 1 
} 

我希望這是有益的。

問候, 拉爾夫

+0

$ passdate是基於一年的日曆日的派生字段。它在包含include(「calendar.php」)的if語句中創建。如果我使$ passdate成爲一個全局變量,它會根據if語句執行它而有所不同?基本上,我有31個if語句,包含31個include(「calender.php」)語句和31個$ passdate語句。當選擇特定的日期時,我需要使用calendar.php加載特定的$ passdate變量。 – user3125362

+0

Hi @ user3125362,我認爲最好的辦法是通過pastebin或者與我們分享你的代碼。 – ralfe

+0

我從未使用過任何類似pastebin.com的東西。我看着它,但不知道我是否將鏈接粘貼到文件中,或者如果我粘貼每個文件和多個粘貼的內容。請澄清,我將分享。謝謝 – user3125362

0

如果分配$ passdate之前執行內部calendar.php和calendarnew.php代碼,這是不可能的訪問。

如果您試圖在calendar.php或calendarnew.php文件內的某個函數內部訪問$ passdate,只需將其引用爲全局變量即可。

例子:

index.php文件

include 'calendar.php'; 
//some code 
$passdate = 'same value'; 

calendar.php文件

include 'calendarnew.php'; 
function someFunctionName() 
{ 
    global $passdate; 
    return $passdate . ' append value'; 
} 

希望它可以幫助

+0

我試着將$ passdate作爲全局變量引用。問題在於include(「calendar.php」)在每月的每一天的IF語句中。 $ passdate在每個IF內都不同,所以當include語句運行時,我需要傳遞$ passdate的那個版本。 – user3125362

相關問題