1

こんにちは、私はここと oophp の初心者です。

別のクラスから既存のオブジェクトの状態を更新しようとしています。

だから私が持っているメインファイルで...

$obj1 = new class1();
$obj2 = new class2();

クラス1には、オブジェクトの状態を変更するセッターメソッドがあります。

class2 の既存のメソッド内から、私が見ているのは次のようなものです...

$obj1->updateName('Bob');

後で同じオブジェクトの状態に関連付ける必要があるため、静的メソッドは適切ではありません。

これが1ページの例です....

class class1(){

    private $name = '';

    public function updateName($nameIn){
        $this->name = $nameIn;
    }

}

class class2(){

    public function someFuntion(){

        //OTHER CODE//

        $obj1->updateName('Bob');
    }
}


$obj1 = new class1();
$obj2 = new class2();

$obj2->someFuntion();

これが理にかなっていることを願っています。

4

2 に答える 2

0

$obj1パラメータとしていつでも someFunction に渡すことができます。

class class1(){
    private $name = '';

    public function updateName($nameIn){
        $this->name = $nameIn;
    }
}

class class2(){
    public function someMethod(class1 $class){
        $class->updateName('Bob');
    }
}


$obj1 = new class1();
$obj2 = new class2();

$obj2->someMethod($obj1);
于 2012-12-18T15:32:13.480 に答える
0

$obj1への参照として渡す必要がありclass2::someFunction()ます。

class class2(){

    public function someFunction(&$obj1){

        //OTHER CODE//

        $obj1->updateName('Bob');
    }
}

$obj1 = new class1();
$obj2 = new class2();

$obj2->someFunction($obj1);

参照渡しの命令はsomeFunction、パラメーターの先頭に&.

http://php.net/manual/en/language.references.pass.php

于 2012-12-18T15:33:16.217 に答える