Php 在类&;中从函数传递变量;课外回音
假设我有这个代码:Php 在类&;中从函数传递变量;课外回音,php,class,function,variables,Php,Class,Function,Variables,假设我有这个代码: class cats { function cats_suck() { $this->cats = "monkeys"; } } $cats = new cats; $cats->cats_suck(); echo $cats->cats; //Monkeys? 我想将$cats传递到我的类之外,我通常只返回$cats然后回显函数,但我的代码中有很多变量。您可以添加一个getter: function getcatmo
class cats {
function cats_suck() {
$this->cats = "monkeys";
}
}
$cats = new cats;
$cats->cats_suck();
echo $cats->cats; //Monkeys?
我想将
$cats
传递到我的类之外,我通常只返回$cats然后回显函数,但我的代码中有很多变量。您可以添加一个getter:
function getcatmonkeys() {
return $this->cats;
}
那么:
$cats = new cats;
$cats->cats_suck();
echo $cats->getcatmonkeys();
$cats = new cats;
$cats->cats_suck();
echo $cats->cats; //Monkeys
或者,您可以将所有私人物品存储在一个数组中,并添加一个神奇的方法来获取:
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->getcatmonkeys();
$cats = new cats;
$cats->cats_suck();
echo $cats->cats; //Monkeys
哪一种方法违背了私密的目的,但我们并不质疑为什么。将$cats定义为类中的公共变量:
class cats {
public $cats;
function cats_suck() {
$this->cats = "monkeys";
}
}
你给我们的代码不足以帮助你。考虑添加一些真正的代码,或者一个清楚地说明问题的代码。这些代码甚至不会运行。在名为
cats
的类中没有变量。后真实code@nickb不,它将失败,并出现一个名为cats的丢失属性的错误。或者PHP是否进一步发展,使得难以调试的蹩脚代码更容易编写?@Cole-No,@ColeJohnson您可以动态添加属性(默认情况下它们是私有的)。这并不一定很糟糕,因为它在tin上告诉您它是松散类型的。没有理由期望对象符合契约。嗯,好主意。这将100%有效,但我的脚本中有大约20-30个变量。@user1742590添加了另一种方法。非常感谢您的帮助!回答得又快又好!哇,这么简单的回答。我真傻,我试过搜索,也许我搜索得不对。谢谢你,哈哈,我是个白痴。我试着把函数公诸于众,公诸于众,等等。。这和将var定义为public一样简单。非常感谢。