2

このコードがあるとします:

class cats {

    function cats_suck() {
        $this->cats = "monkeys";
    }

}

$cats = new cats;
$cats->cats_suck();
echo $cats->cats; //Monkeys?

クラスの外に渡したい$catsのですが、通常は $cats を返し、関数をエコーし​​ますが、コードには多くの変数があります。

4

2 に答える 2

2

ゲッターを追加できます:

function getcatmonkeys() {
    return $this->cats;
}

それで:

$cats = new cats;
$cats->cats_suck();
echo $cats->getcatmonkeys();

または、すべてのプライベートを配列に格納し、取得するための魔法のメソッドを追加することもできます:

private $data = array();

function cats_suck() {
    $this->data['cats'] = "monkeys";
}

public function __get($name)
{
    return $this->data[$name];
}

それで:

$cats = new cats;
$cats->cats_suck();
echo $cats->cats; //Monkeys

これは、プライベートを持つ目的を無効にしますが、その理由を疑問視することはありません。

于 2012-11-29T17:26:28.177 に答える
1

$cats をクラスのパブリック変数として定義します。

class cats {
    public $cats;

    function cats_suck() {
        $this->cats = "monkeys";
    }

}
于 2012-11-29T17:29:26.447 に答える