【发布时间】:2011-01-19 00:04:18
【问题描述】:
我是 PHP 和一般编程新手。我一直在用 PHP 做一些需要我创建类的事情,这很好,除了我似乎无法让我的类方法在作为类属性的数组上工作。我肯定做错了什么,因为不管项目如何,它似乎都不起作用。
这是我刚刚写的一个示例(我认为发布一个简短的示例而不是我的实际项目的代码会更容易,因为它有点长且涉及)。
class Test {
public $testArray;
public $testInt;
public function __construct() {
$this->testArray = array();
for ($i=1; $i<=20; $i++) {
$this->testArray[] = array(1, 2);
}
$this->testInt = 4;
}
public function testf() {
$this->testInt += 1;
foreach ($this->testArray as $n) {
$n[] = 3;
}
}
}
如果我在最后添加一些代码,以便打印出正在发生的事情:
$obj = new Test;
echo 'Before function call:';
echo '<br />testArray:<br />';
foreach ($obj->testArray as $n) {
print_r($n);
echo '<br />';
}
echo '<br />testInt: ';
echo $obj->testInt;
echo '<br />';
echo '<br />';
echo '<br />';
$obj->testf();
echo 'After function call:';
echo '<br />testArray:<br />';
foreach ($obj->testArray as $n) {
print_r($n);
echo '<br />';
}
echo '<br />testInt: ';
echo $obj->testInt;
echo '<br />';
那么你最终看到的是,在函数调用之后,testInt 变量发生了变化,但 testArray 没有变化。
如果其中任何内容不够清楚,请告诉我。这让我发疯了一段时间。提前感谢您抽出宝贵时间查看我的问题。
【问题讨论】: