经过9个小时的努力才能做到这一点,我已经转向互联网寻求帮助。我无法在Google搜索中找到任何相关答案。
我目前有一个名为Test的课程。 Test接受一个参数。
<?php
class test {
private $varpassed;
public function getVarpas() {
return $this->varpassed;
}
Public function setVarpas($value) {
$this->varpassed= $value;
}
public function stringGen(){
$testvar = $this->varpassed;
echo $testvar;
}
}
stringGen函数应该在调用时返回$ varpassed变量。使用setVarpas函数设置$ varpassed的值。但是,当我调用stringGen()方法时,我似乎只得到以下错误:
致命错误:当不在file.php第14行的对象上下文中时使用$ this。
指向这一行:
$testvar = $this->varpassed;
有没有其他方法可以将变量传递给stringGen方法?我尝试过使用:
self::$this->varpassed;
这也会引发错误。
答案 0 :(得分:3)
首先创建一个对象实例(这样你就可以在上下文中使用$ this),例如:
$test = new test();
然后你可以打电话:
$test->setVarpas('Hello World!');
现在你可以打电话:
$test->stringGen();
答案 1 :(得分:2)
你必须做这样的事情
$var = new test();
$var->setVarpas("Hello");
$var->stringGen(); // this will echo Hello
你上课时会使用 $this
。在课外,你必须使用类对象。
答案 2 :(得分:2)
1)将此更改为class test()
至class test
2)首先创建和实例$t1 = new test();
3)调用函数$t1->setVarpas(5);
4)现在您可以调用函数$t1->stringGen();
<强>固定强>
<?php
class test
{
private $varpassed;
public function getVarpas() {
return $this->varpassed;
}
Public function setVarpas($value) {
$this->varpassed= $value;
}
public function stringGen(){
$testvar = $this->varpassed;
echo $testvar;
}
}
$t1 = new test();
$t1->setVarpas(5);
$t1->stringGen();
<强>输出:强>
5
答案 3 :(得分:1)
你不应该用括号声明一个类。
使用
class test {
代替
class test(){