我有 index.php 文件,它包含:
1.class eachObject
class wall extends eachObject
{
function outPut()
{
echo '<td class="wall"> </td>';
}
}
2.class 墙
class blank extends eachObject
{
function outPut()
{
echo '<td class="blank"> </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时,我会有一个墙而不是空白区域。
答案 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;