我在PHP中有一个包含许多方法和变量的类。每次我需要一个方法来调用同一个类中的另一个时,我必须添加$this->
。这个(!)会产生一些非常易读的来源,例如:
$nextX = $this->calculateNextX($this->DX, $this->DY, $this->DZ);
$nextY = $this->calculateNextY($this->DX, $this->DY, $this->DZ);
$nextZ = $this->calculateNextZ($this->DX, $this->DY, $this->DZ);
$this->X = $nextX;
$this->Y = $nextY;
$this->Z = $nextZ;
有没有办法在任何地方避免$this->
?
答案 0 :(得分:6)
不,用PHP内置的OOP概念来避免这种结构是不可能的。
PHP,就像JavaScript,Python和Perl一样 - 但与Java不同,并不总是像Ruby一样 - 总是需要一个明确的接收器 - 或者$this
用于“当前实例” - 访问会员。语法只是PHP碰巧用来表示这种结构的形式,并且很可能受到“成为语言的后来者”并且不得不适应它的影响。它也让人联想到Perl / C语法。
虽然位置可以更改或网站数量可以减少,但在一天结束时, 是访问成员的方法。
快乐的编码。
答案 1 :(得分:2)
您可以在每种方法中执行此操作
extract(get_object_vars($this));
虽然这只会让你获得变量,而不是方法,也不会获得静态属性。而且它们不会被引用,所以只对阅读有用。
答案 2 :(得分:0)
您可以将其设置为其他内容
$a = $this;
$a->stuff();
即使在C ++中,我更喜欢使用this
,但为了清楚起见,您正在使用类成员。但它在PHP中不是可选的。