PHP函数赢得';t拾取变量';s值
我写这篇文章是因为我正在学习OOP PHP。我在将变量的值传递给函数时遇到了一些问题。但事实证明,这些函数不会读取变量的值。请参阅下文并提出建议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
<?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;
}