Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP函数赢得';t拾取变量';s值_Php_Oop_Calculator - Fatal编程技术网

PHP函数赢得';t拾取变量';s值

PHP函数赢得';t拾取变量';s值,php,oop,calculator,Php,Oop,Calculator,我写这篇文章是因为我正在学习OOP PHP。我在将变量的值传递给函数时遇到了一些问题。但事实证明,这些函数不会读取变量的值。请参阅下文并提出建议 <?php class calculator { private $num1 = '1'; private $num2 = '2'; public function complete() { return $num1 * $num2; } } $calc = new calcul

我写这篇文章是因为我正在学习OOP PHP。我在将变量的值传递给函数时遇到了一些问题。但事实证明,这些函数不会读取变量的值。请参阅下文并提出建议

<?php 


 class calculator {

    private $num1 = '1';
    private $num2 = '2';

    public function complete() {

        return $num1 * $num2;

    }

}

$calc = new calculator();
$result = $calc->complete();

echo $result;

您必须更改此选项:

(使用
$this
可以访问类属性,而不是任何变量)

为此:

public function complete() {

    return $this->num1 * $this->num2;
         //^^^^^ See here^^^^^

}
此函数中没有创建变量
$num1
$num2
。当然,它不会“读取变量的值”

您想要的可能是:

public function complete() {

    return $this->num1 * $this->num2;

}

你读过PHP手册中关于的章节了吗?

在构造函数中传递你的数字<代码>公共函数uu构造($num1,$num2){$this->num1=$num1;$this->num2=$num2;}
将更适合您的计算器。作为旁注-这也是显式调用函数的方式。使用$this->在你的课堂上做任何事情,非常感谢。这就解决了它:)我真的在试图找到一个解决方案,但无法理解这个问题。@JaySilva我个人认为你接受了错误的答案,因为这个答案既解释了问题,又是首先提交的。这完全是你的选择,但这只是原则;-)
public function complete() {

    return $num1 * $num2;

}
public function complete() {

    return $this->num1 * $this->num2;

}