php oo引用类成员
我想将$mymember作为ref传递给Foo的构造函数,这样对它的更改也将直接在$mymember变量上更改 我的代码当前是错误的,我在php oo引用类成员,php,oop,reference,Php,Oop,Reference,我想将$mymember作为ref传递给Foo的构造函数,这样对它的更改也将直接在$mymember变量上更改 我的代码当前是错误的,我在private&$member上得到了意外的“&”错误 所以我猜我在引用用法上的语法有问题 我试着跟着说:请这样做: class Foo{ private &$member; function __construct(&$member){ $this->member = &$member; } function
private&$member上得到了意外的“&”错误代码>
所以我猜我在引用用法上的语法有问题
我试着跟着说:请这样做:
class Foo{
private &$member;
function __construct(&$member){ $this->member = &$member; }
function doSmtg(){//changes member }
function doSmtgElse(){//changes member }
}
$myMember = "";
foo = new Foo($myMember);
foo->doSmtg();
echo $myMember;
不能定义变量引用。只能有一个变量包含对另一个变量的引用
除此之外,在定义变量时,您不必告诉PHP要在变量中放入什么内容
因此:
private&$member代码>可以是
private$会员代码>您做错的第一件事是:
class Foo{
private $member1;
private $member2;
function __construct(){}
function doSmtg($member1, $member2){
$this->member1 = $member1;
$this->member2 = $member2;
//changes member1 and 2
}
function doSmtgElse(){
$this->member1 = $member1;
$this->member2 = $member2;
//changes member1 and 2
}
function getMember1(){
return $this->member1;
}
function getMember2(){
return $this->member2;
}
}
$myMember1 = "";
$myMember2 = "";
$foo = new Foo();
$foo->doSmtg($myMember1, $myMember2);
echo $foo->getMember1.", ".$foo->getMember2;
这在PHP中是不允许的。
你为什么要使用参考资料?引用在PHP中的工作方式不同。PHP引用与其他语言如C或C++不一样。这会导致难以诊断错误和意外行为。@johncode是正确的,您应该让“doSmtg”将您的值作为参数,然后返回修改后的值,这样main就可以知道这些更改,main就可以维护了。但是通过这样做,我可以修改$myMember
,并且仍然能够在函数中返回一些内容,这不是在性能上更好吗?如果您想返回多个值,您应该修改class属性,private$member
,然后,main调用getMember()
yes,但不使用ref.来提高性能?这不是sort方法对给定数组使用引用的原因吗?idk…接受了,因为它为我提供了在php中使用引用变量的正确解决方案。
private &$member;