【问题标题】:PHP Function won't pick up variable's valuesPHP 函数不会获取变量的值
【发布时间】:2015-01-20 13:56:31
【问题描述】:

我在学习 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;

【问题讨论】:

  • 在构造函数中传递您的数字。 public function __construct($num1, $num2) { $this-&gt;num1 = $num1; $this-&gt;num2 = $num2; } 会更适合您的计算器。

标签: php oop calculator


【解决方案1】:

你必须改变这个:

$this 访问的是类属性,而不是任何变量)

public function complete() {

    return $num1 * $num2;

}

到这里:

public function complete() {

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

}

【讨论】:

  • 作为旁注 - 这也是您显式调用函数的方式。将 $this-> 用于类中的任何内容
  • 非常感谢。那解决了它:)我真的在努力寻找解决方案,但无法理解问题。
  • @JaySilva 我个人认为你接受了错误的答案,因为这个答案既解释了问题又是第一个提交的。这完全是你的选择,但这只是事情的原则;-)
【解决方案2】:
public function complete() {

    return $num1 * $num2;

}

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

你想要的可能是:

public function complete() {

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

}

你读过PHP手册中关于classes and objects的章节吗?

【讨论】:

    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    相关资源
    最近更新 更多