저는 PHP와 프로그래밍에 익숙하지 않습니다. 나는 클래스 작성을 요구하는 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
은 그렇지 않습니다.
이 부분이 명확하지 않은 경우 알려주십시오. 이것은 나를 미치게 만들었다. 내 문제를 살펴 볼 시간을 내 주셔서 미리 감사드립니다.
정말 고마워요, 정말 고마워요. –