从类和函数中的函数传递变量课外回声

时间:2012-11-29 17:18:46

标签: php class function variables

说我有这段代码:

class cats {

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

}

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

我想将$cats传递给我的课外,我通常会返回$ cats然后回显该函数,但我的代码中有很多变量。

2 个答案:

答案 0 :(得分:2)

你可以添加一个getter:

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

哪种方式会破坏私有化的目的,但我们不会质疑为什么。

答案 1 :(得分:1)

将$ cats定义为类中的公共变量:

class cats {
    public $cats;

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

}