php从另一个类文件函数中获取另一个文件中的变量值

时间:2014-12-30 12:46:17

标签: php class

我有一个这样的课程

class myClass{
    public function getContent() {
        $products  = 'something';
    }
}

现在有另一个名为file.php的文件。在那里我已经包含了类文件ike this

include_once(dirname(__FILE__).'/class.php');

现在在file.php里面,我已经制作了像这样的代码

$test  = new myClass();
$test->$products;

但它没有获得变量。那么有人能告诉我如何从另一个类文件函数中获取变量吗?任何帮助和建议都将非常适用。感谢

6 个答案:

答案 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;

**代码未通过测试