如何在另一个PHP文件中更新数组?

时间:2017-09-29 14:24:56

标签: php

我有 index.php 文件,它包含:

1.class eachObject

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

2.class

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

3.class 空白

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

我从他们那里得到了实例:

room

我有一个名为wall的数组,包括blank$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

问题是: 如何在另一个名为$room[0] = array($wall, $wall, $wall, $wall, $blank); 的php文件中更改此数组:

$blank

如您所见,第三个值已从$wall更改为lines

然后当我刷新包含表格的div时,我会有一个墙而不是空白区域。

3 个答案:

答案 0 :(得分:2)

由于index.php包含/需要test.php,因此可以使用

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

但请注意,只有$rooms$wall都可以访问时才可以这样做。如果在包含/ require test.php之前将它们声明为全局变量,并且在包含/ require index.php之后对$room[0]进行了一些更改,那么它应该有效并且您应该有一个新值。根据您的描述,似乎您在$rooms之前包含/ required test.php和/或$wall,或者变量不在上下文中,例如,在function内。您需要确保变量在另一个文件中可以访问,并且当另一个文件开始使用它们时,它们已经被声明。但是,您可能希望重新考虑代码的构造方式并使用一些想法,如MVC。如果这个答案不足以解决您的问题,那么您需要添加有关代码的更多详细信息。

答案 1 :(得分:0)

创建一个功能构造(带有方法,函数,...的类),首先删除旧的test.php文件,然后创建一个新文件,逐行添加要添加的内容。 (有关此类申请,请参阅Php filesystem functions

这是一种有效的方式,但这不是我推荐的方式。 (但我不知道你的项目,我可能看不到整个图像)更好的方法是使用序列化数组。因此,序列化新数组,将该字符串保存到文件中,每次要使用数组时,只需反序列化文件中的字符串即可。最后一种方法:如果可能的话,使用数据库。

答案 2 :(得分:-1)

你可以改变每个值 $ room [0] [3] = $ wall;