我有一个这样的课程
class myClass{
public function getContent() {
$products = 'something';
}
}
现在有另一个名为file.php的文件。在那里我已经包含了类文件ike this
include_once(dirname(__FILE__).'/class.php');
现在在file.php里面,我已经制作了像这样的代码
$test = new myClass();
$test->$products;
但它没有获得变量。那么有人能告诉我如何从另一个类文件函数中获取变量吗?任何帮助和建议都将非常适用。感谢
答案 0 :(得分:0)
您需要调用该函数来设置变量。
$test = new myClass();
$test->getContent();
echo $test->products;
无论如何,这是令人困惑的,因为getContent没有得到任何东西。所以,这样做。
//Rename it to set not get
public function setContent() {
$this->products = 'something';
}
$test = new myClass();
//set it
$test->setContent();
echo $test->products;
如果你想得到它,那么:
public function getContent() {
return $this->products;
}
所以你的完整课程,以及如何设置和获取可能是这样的(我重命名了getter和setter)
class myClass {
private $products;
public function getProducts() {
return $this->products;
}
public function setProducts() {
$this->products = 'something';
}
}
$test = new myClass;
$test->setProducts();
echo $test->getProducts();
答案 1 :(得分:0)
这里出现了许多问题。
首先:为了让函数调用返回一个值,它实际上需要有一个return
语句。因此,您的getContent
目前无法返回任何内容。
然后,为了在类中存储某些东西,您需要为它创建一个类属性。否则变量将在函数结束时被丢弃;不是你想要的。
最后;要直接访问类中的变量,您需要直接使用该名称,而不需要前面的$。否则,您将使用已使用变量的字符串值的名称访问该属性,这是完全不同的。
这里有一些固定代码:
class myClass{
public $products = '';
public function setContent($content) {
$this->products = $content;
}
public function getContent() {
return $this->products;
}
}
$test = new myClass();
$test->products; // works
$test->getContents(); // also works
你可能需要阅读PHP语法,因为你似乎遇到了一些麻烦。
答案 2 :(得分:0)
试试这个:
class myClass{
public function getContent() {
$products = 'something';
return $products;
}
}
$test = new myClass();
echo $test->getContent();
答案 3 :(得分:-1)
您必须先运行该功能。使用下面的代码
$p = new myClass;
$p->getContent();
$p->products;
只需指定产品属性
即可class myClass{
public function getContent() {
$products = 'something';
$this->products = $products;
}
}
希望这有助于你
答案 4 :(得分:-1)
您需要为myClass定义一个全局变量:
class myClass{
public $products = '';
public function getContent() {
$this->products = 'something';
}
}
在file.php中:
$test = new myClass();
$test->getContent();
echo $test->products; // Print something
如果要获取所有变量,可以使用get_defined_vars()函数:
class myClass{
public $vars;
public function getContent() {
$products = 'something';
$this->vars = (object) get_defined_vars();
}
}
在file.php中:
$test = new myClass();
$test->getContent();
echo $test->vars->products; // Print something
答案 5 :(得分:-5)
它不会,因为您声明$products
变量的方式使其成为function getContent()
的本地。那么
您可以从那里访问函数$test->getContent()
和return $products
,
或者您可以将$products
声明为该类的global
成员变量
class myClass{
$products;
public function getContent() {
$products = 'something';
}
}
然后您可以访问
$test = new myClass();
$test->products;
**代码未通过测试