向量计算类oop php

向量计算类oop php,php,oop,vector,Php,Oop,Vector,我正在学习php oop,似乎我仍然不了解我的代码是如何工作的,在我看来,代码看起来不正常,并且返回的错误很少。代码如下: 代码中有两个地方出错了。请参阅以下代码: class Vector {} $wekt= new Vector($x, $y); echo $wekt->addVector(5,7); 在哪里定义了$x和$y?这是您出现错误的主要原因。类的作用域与全局作用域不同,这意味着只有在全局作用域中定义了$wekt->时,才可以访问其中定义的所有内容 现在第二件事是addVe

我正在学习php oop,似乎我仍然不了解我的代码是如何工作的,在我看来,代码看起来不正常,并且返回的错误很少。代码如下:


代码中有两个地方出错了。请参阅以下代码:

class Vector {}

$wekt= new Vector($x, $y);
echo $wekt->addVector(5,7);

在哪里定义了
$x
$y
?这是您出现错误的主要原因。类的作用域与全局作用域不同,这意味着只有在全局作用域中定义了
$wekt->
时,才可以访问其中定义的所有内容

现在第二件事是
addVector()


您要求回显此方法的返回,但该函数中未定义任何返回。其次,
$x
$y
在该功能范围内的定义在哪里

将其更改为:

class Vector {
    private $list = [];
    public function addVector($x, $y) {
        $this->list[] = new Vector($x, $y);
        return $x + $y;
    }
}

$x
$y
在调用
new Vector()
的作用域中不存在
Vector
类中没有
set()
方法,只有
setx()
sety()的方法
我差点忘了我创建了这个线程:-)到目前为止,我修复了这个代码,现在它看起来和工作起来都比我在这里做的要好得多。由于stackoverflow上的答案有符号限制,因此我不会在本文中发布代码。最终,我对构造函数有了更好的理解,我甚至可以使用它们,这是一件好事,至少比标记它更好,因为它可以解决您的问题。现在我甚至忘了我做了这个回答,我只是回到历史上所有未标记/未引导的
class Vector {
    private $list = [];
    public function addVector($x, $y) {
        $this->list[] = new Vector($x, $y);
        return $x + $y;
    }
}