2017-09-29 18 views
2

的index.php文件,它包含:如何更新另一個PHP文件中的數組?

1.class eachObject

class eachObject 
{ 
    function outPut() 
    { 
     echo '<td>&nbsp;</td>'; 
    } 
} 

2.class

class wall extends eachObject 
{ 
    function outPut() 
    { 
     echo '<td class="wall">&nbsp;</td>'; 
    } 
} 

3.class 空白

class blank extends eachObject 
{ 
    function outPut() 
    { 
     echo '<td class="blank">&nbsp;</td>'; 
    } 
} 

我實例從他們:

$wall = new wall(); 
$blank = new blank(); 

,我有一個數組稱爲room包括wallblank

$room  = array();  
$room[0] = array($wall, $wall, $blank, $wall, $blank); 

,然後我會用它在一個表中顯示牆空白區域:

<html> 
<body> 
<?php 
    echo '<table>'; 
    foreach ($room as $row) { 
     echo '<tr>'; 
     foreach ($row as $tool) { 
      $tool->outPut(); 
     } 
     echo '</tr>'; 
    } 
    echo '</table>'; 
?> 
</body> 
</html> 

現在的問題是:我怎麼能在一個名爲test.php有另一個PHP文件更改此陣:

$room[0] = array($wall, $wall, $wall, $wall, $blank); 

正如你所看到的,第三個值改爲從$blank$wall

然後當我刷新包含表的div時,我將有一個牆而不是空白區域。

+1

你是什麼意思由另一個PHP文件? –

+0

@LajosArpad感謝您的問題。我的意思是我有我的所有類和數組和index.php文件中的實例,我想改變我的數組中的值(或不同的值)在test.php文件。 – maziarser

+0

你是否在index.php中要求另一個文件,也就是說,你有類似require_once(「test.php」)的東西嗎? –

回答

2

由於test.php的是包含/到index.php需要,$rooms可以使用

$rooms[0][3] = $wall; 

改性存在但請注意,這僅僅是可能的,如果二者$rooms$wall可達。如果你在包含/需要test.php之前將它們聲明爲全局變量,並且在包含/需要index.php之後,你對$room[0]做了一些更改,那麼它應該可以工作,並且你應該有一個新的值。根據你的描述,你似乎在$rooms和/或$wall之前包含/需要test.php,或者變量超出上下文,例如在function內。您需要確保變量在其他文件中可以訪問,並且當其他文件開始使用它們時,它們已經被聲明。但是,您可能需要重新考慮代碼結構的方式,並使用一些想法,如MVC。如果這個答案不足以解決您的問題,那麼您需要添加更多關於代碼的細節。

-1

您可以更改每個房間的價格 $ room [0] [3] = $ wall;

+0

咦? OP有問題嗎?我不這麼認爲......仔細閱讀問題 –

+0

@tom,我在另一個php文件中提到過。 – maziarser

0

創建一個函數構造(類與方法,函數,...),首先刪除您的舊test.php文件,然後創建一個新的,逐行添加您想添加的內容。 (見Php filesystem functions這樣的應用程序)

這是一種工作方式,但它不是我會推薦的方式。 (但我不知道你的項目,我可能看不到整個圖像)更好的方法是使用序列化數組。所以,你串行化你的新數組,將這個字符串保存到你的文件中,並且每次你想使用你的數組時,只需要對你的文件中的字符串進行反序列化。最後的方法:如果可能的話,使用數據庫。

相關問題