0

私は OOP が初めてで、なぜこれが機能しないのかわかりません。クラス内でクラスをインスタンス化しても問題ありませんか。メソッドに含まれるファイルでこれを試しましたが、変更はありませんでした。

include('Activate.php');

class First {
    function __construct() {
    $this->activate();
    }       
    private function activate() {
    $go = new Activate('Approved');
    }
}

$run = new First();
4

3 に答える 3

1

アクセスしたいということです$goか?その場合は、スコープを変更する必要があるためです。

ご覧のとおり$go、このメソッドは内部でのみ使用できますactivate()

private function activate() {
    $go = new Activate('Approved');
}

クラス内の他の場所からアクセスできるようにするには、外部で宣言する必要がありますactivate()

private $go = null;

$go次を使用して呼び出します$this

private function activate() {
    $this->go = new Activate('Approved');
}

その後、クラス外から go にアクセスしたい場合は、ラッパーを作成する必要があります:

public function getGo(){
   return $this->go;
}

これが役に立ったことを願っています。また、 OOP in PHP に関するドキュメントを読むこともできます。

于 2012-11-14T03:39:44.617 に答える
0

さて、私は自分の問題を理解しました。私のコードには 2 つのエラーがありました。$parms私のメソッドであることがプライベートに設定されていて、次にクラスに送信していたエラーがありました。

include('Activate.php');

class First {
    function __construct() {
    $this->activate();
    }       
    private function activate() {
    $go = new Activate('Approved');
    }
}

$run = new First();
于 2012-11-16T03:44:10.747 に答える