从类中的函数内访问变量(范围?)

时间:2011-02-06 17:08:22

标签: php class function variables scopes

我是一个相当新的课程,我一直在网上寻找某种类型的教程,但不幸的是我找不到解决方案。你们可以给我的任何帮助都会非常感激。

我有2个文件。

1)variables.inc.php:

$myvar = "hello world";

2)myclass.php:

include("variables.inc.php");
class myClass {

    function doSomething() {
        echo "myvar: $myvar";
    }
}

问题: $myvar返回空。我尝试在function doSomething() {echo...: global $myvar;之间添加此行 但它似乎也没那么奏效。有什么建议吗?

3 个答案:

答案 0 :(得分:2)

$myvar在全球范围内定义。

如果真的需要访问,那么

function doSomething() { global $myvar; echo "myvar: $myvar"; }

然而,在其他范围内使用全局变量被认为是不好的做法。

有关更详细的说明,请参阅官方PHP手册中的 Variable scope 一章。

答案 1 :(得分:2)

function doSomething() {
  global $myvar;
  echo "myvar: $myvar";  
}  

答案 2 :(得分:0)

永远不要在课程中使用global

如果您需要在类中使用变量,请将其注入方法或构造函数中:

class myClass {

function doSomething($myvar) { echo "myvar: $myvar"; }

}

$obj = new myClass;
$obj->doSomething($myvar);