2017-02-17 232 views
0

我遇到了一個簡單的include語句的問題,我不知道是什麼導致了它。包含一個包含多個數組的php文件

首先我存儲在一個名爲dbInit.php

文件看起來像這樣有關表和列的信息:

<?php 

    $aTableNames = array (
    "tbl_crs" => "tbl_crs", 
    "tbl_lct" => "tbl_lct", 
    "tbl_prf" => "tbl_prf", 
    "tbl_qst" => "tbl_qst", 
    "tbl_uni" => "tbl_uni", 
    "tbl_usr" => "tbl_usr" 
    ); 

    $aAuxTableNames = array (
    "aux_crs_lct" => "aux_crs_lct", 
    "aux_lct_prf" => "aux_lct_prf", 
    "aux_uni_crs" => "aux_uni_crs" 
    ); 

?> 

現在我只是想從另一個文件訪問這些陣列。所以我這樣包含它:

include "Ini/dbInit.php"; 

到目前爲止好。現在我想用數組的值是這樣的:

$sTable1 = $aAuxTableNames["aux_uni_crs"]; 
$sTable2 = $aTableNames["tbl_crs"]; 

目錄如下: Directory

我怎樣才能在上面播種的方式訪問這些陣列?

非常感謝。

問候 Amnney

+3

我不知道你實際上是在問這裏 – RiggsFolly

+1

'的error_reporting(E_ALL); ini_set('display_errors','1');' – AbraCadaver

+0

我想保持我的代碼儘可能全球化。所以我想要將幾乎所有的信息都存儲在外部文件中。就像文件dbIni.php一樣。這樣我就可以在這個包含文件中更改一次,並且它在整個代碼中都是變化的。但由於某種原因,我根本無法訪問陣列。 – Amnney

回答

1

我沒有問題,實施這個。所以基本上這就是我所做的。我通過在數組中包含一個包含文件來複制你的結構,就像你在這裏發佈的一樣。然後我在我的服務器的根目錄下創建了一個測試文件。這個測試文件也是php,並且我做了正常的include。創建新變量,然後print_r('');你創建的2個新變量並沒有收到任何錯誤。

這是我dbinit.php文件:

<?php 
    $aTableNames = array (
    "tbl_crs" => "tbl_crs", 
    "tbl_lct" => "tbl_lct", 
    "tbl_prf" => "tbl_prf", 
    "tbl_qst" => "tbl_qst", 
    "tbl_uni" => "tbl_uni", 
    "tbl_usr" => "tbl_usr" 
    ); 

    $aAuxTableNames = array (
    "aux_crs_lct" => "aux_crs_lct", 
    "aux_lct_prf" => "aux_lct_prf", 
    "aux_uni_crs" => "aux_uni_crs" 
    ); 
?> 

好了,所以完全按你的是。然後,我創造了我的根稱爲testpage.php文件:

<?php 

include('inc/dbinit.php'); 

$sTable1 = $aAuxTableNames["aux_uni_crs"]; 
$sTable2 = $aTableNames["tbl_crs"]; 

print_r($sTable1); 
print_r($sTable2); 


?> 

我作爲結構表明:Structure

絕對運行此或檢索數據沒有問題。希望這可以幫助。

最終輸出:Final Output

+0

謝謝你測試它。我只是刪除了該文件並重新創建了它,並且出於某種原因,即使我沒有更改它,它也能正常工作。 – Amnney

+0

絕對,很高興你能弄明白!我沒有看到任何錯誤,這就是爲什麼我使用print_r();看看結果是什麼。祝你好運! –

1

試試這個:

// Ini/dbInit.php 
<?php 

return array(
    'aTableNames' => array(
     "tbl_crs" => "tbl_crs", 
     "tbl_lct" => "tbl_lct", 
     "tbl_prf" => "tbl_prf", 
     "tbl_qst" => "tbl_qst", 
     "tbl_uni" => "tbl_uni", 
     "tbl_usr" => "tbl_usr" 
    ), 

    'aAuxTableNames' => array(
     "aux_crs_lct" => "aux_crs_lct", 
     "aux_lct_prf" => "aux_lct_prf", 
     "aux_uni_crs" => "aux_uni_crs" 
    ), 
); 

在文件中,要得到燕麗/ dbInit.php

<?php 

$config = include "Ini/dbInit.php"; 
$sTable1 = $config['aAuxTableNames']['aux_uni_crs'] 
$sTable2 = $config['aTableNames']['tbl_crs']; 
+0

我只是試過你的代碼,它工作得很好。但由於某種原因,我現在也在工作。非常感謝你:) – Amnney