为什么我不能将 $this 用于我的方法,而是将我的 属性 用于我的方法?
Why can't I use $this for my method but my property?
我刚开始使用面向对象 PHP,但我 运行 遇到了使用 $this
的问题
这是我当前的代码:
class Computer {
public $CPU = "<br> Die CPU <br>";
public function starten() {
echo "<br> Computer ist gestartet. <br>";
}
public function herunterfahren(&$sekunden = 20) {
echo "Der PC wird in $sekunden Sekunden heruntergefahren.";
}
public function beides() {
echo "Die CPU Methode klatsch: " . $this->CPU . " raus, beim herunterfahren sieht es anders aus: " . $this->herunterfahren();
}
}
$meinComputer = new Computer();
$meinComputer->starten();
echo $meinComputer->CPU;
$meinComputer->CPU = "3GHz.";
echo $meinComputer->CPU;
echo "<br><br>";
$meinComputer->herunterfahren();
echo "<br><br>";
$dauer = 12;
$meinComputer->herunterfahren($dauer);
echo "<br><br><br><br>";
$meinComputer->beides();
输出效果很好,但是 $meinComputer->beides();
没有显示 $this->herunterfahren();
部分。输出是:
PC 将在 20 秒后进行八卦 heruntergefahren.Die CPU 方法:3GHz。 out,关闭时看起来不一样:
而不是:
PC 将在 20 秒后进行八卦 heruntergefahren.Die CPU 方法:3GHz。 out,关机时看起来不一样:PC将在20秒后关机。
当我像这样输入 $sekunden
的参数时:
public 函数 both() {
回声 "Die CPU Methode klatsch: " 。 $this->CPU 。 “out,关机时看起来不一样:”。 $这个->关机(10);
}
在运行之后没有显示任何内容:$meinComputer->beides();
我不明白,为什么它不能输出那部分代码..
方法
$this->herunterfahren()
打印带有一些参数的文本,它没有 return 任何东西.. 所以当它在这一行中被评估时:
echo "Die CPU M..: " . $this->CPU . " raus, be... " . $this->herunterfahren();
该方法立即运行打印下面的文本
没有 return 当前回显函数可以使用的任何值
"Der PC wird in $sekunden(value) Sekunden heruntergefahren"
要解决这个问题,请在 herunterfahren
方法中使用 return
而不是 echo
,如下所示:
public function herunterfahren(&$sekunden = 20) {
return "Der PC wird in $sekunden Sekunden heruntergefahren.";}
完成之后你需要处理这部分:
echo $meinComputer->herunterfahren();
我刚开始使用面向对象 PHP,但我 运行 遇到了使用 $this
这是我当前的代码:
class Computer {
public $CPU = "<br> Die CPU <br>";
public function starten() {
echo "<br> Computer ist gestartet. <br>";
}
public function herunterfahren(&$sekunden = 20) {
echo "Der PC wird in $sekunden Sekunden heruntergefahren.";
}
public function beides() {
echo "Die CPU Methode klatsch: " . $this->CPU . " raus, beim herunterfahren sieht es anders aus: " . $this->herunterfahren();
}
}
$meinComputer = new Computer();
$meinComputer->starten();
echo $meinComputer->CPU;
$meinComputer->CPU = "3GHz.";
echo $meinComputer->CPU;
echo "<br><br>";
$meinComputer->herunterfahren();
echo "<br><br>";
$dauer = 12;
$meinComputer->herunterfahren($dauer);
echo "<br><br><br><br>";
$meinComputer->beides();
输出效果很好,但是 $meinComputer->beides();
没有显示 $this->herunterfahren();
部分。输出是:
PC 将在 20 秒后进行八卦 heruntergefahren.Die CPU 方法:3GHz。 out,关闭时看起来不一样:
而不是:
PC 将在 20 秒后进行八卦 heruntergefahren.Die CPU 方法:3GHz。 out,关机时看起来不一样:PC将在20秒后关机。
当我像这样输入 $sekunden
的参数时:
public 函数 both() {
回声 "Die CPU Methode klatsch: " 。 $this->CPU 。 “out,关机时看起来不一样:”。 $这个->关机(10); }
在运行之后没有显示任何内容:$meinComputer->beides();
我不明白,为什么它不能输出那部分代码..
方法
$this->herunterfahren()
打印带有一些参数的文本,它没有 return 任何东西.. 所以当它在这一行中被评估时:
echo "Die CPU M..: " . $this->CPU . " raus, be... " . $this->herunterfahren();
该方法立即运行打印下面的文本
没有 return 当前回显函数可以使用的任何值
"Der PC wird in $sekunden(value) Sekunden heruntergefahren"
要解决这个问题,请在 herunterfahren
方法中使用 return
而不是 echo
,如下所示:
public function herunterfahren(&$sekunden = 20) {
return "Der PC wird in $sekunden Sekunden heruntergefahren.";}
完成之后你需要处理这部分:
echo $meinComputer->herunterfahren();