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 回答