从类中的函数调用变量?

时间:2014-02-12 01:52:05

标签: php function class variables

我刚刚创建了我的第一个PHP class,但我对此非常陌生,现在我不知道如何在我创建的variable内调用function

例如:

class Example
{
  public function testFunction() {
    $var1 = "Test";
    $var2 = "Hello";
  }
}

然后,例如,echo $ var1。

我知道我可以通过这个来调用函数:

$something = new Example();
$something->testFunction();

但是如何在函数内部调用其中一个变量?

我也知道如果变量在函数之外,那就是:

$something = new Example();
echo $something->var1;

我可以使用return,但这样我只用一个变量结束,并且我在该函数中有多个变量。

我希望你能帮助我。

3 个答案:

答案 0 :(得分:2)

函数内部的变量在它们之外是不可用的。该函数需要return变量。

function getName(){
  return "helion3";
}

echo $myClass->getName();

如果您需要多个,请返回一个数组:

return array("name1","name2");

答案 1 :(得分:1)

要从类外部类函数访问变量,需要将变量设置为类的属性:

class Example {
    public $var1 = ''; 
    private $var3 = ''; // private properties etc are not available outside the class

    public function testFunction() {
        $this->var1 = 'Test';
        $var2 = 'Test2';
        $this->var3 = 'Test3';
    }
}

$something = new Example();
echo $something->var1; // Test
echo $something->var2; // can't do this at all (it's not an object property)
echo $something->var3; // can't do this, it's private!

当然,您可以从功能本身返回任何您喜欢的内容......

public function testFunction() {
    $this->var1 = 'Test';
    $var2 = 'Test2';
    $this->var3 = 'Test3';
    return array($this->var1, $var2, $this->var3);
}

您可以返回私有属性和本地范围的变量...

list($var1, $var2, $var3) = $something->testFunction(); // all there!  

答案 2 :(得分:1)

在函数体内声明的变量只能在函数体中访问。

如果你的函数需要返回多个值,你要么a)返回一个新对象,要么b)返回一个数组:

return [$var1, $var2];

在调用代码中:

list($a, $b) = $something->testFunction();