开发者

Accessing variables from within a function within a class (scopes?)

I'm fairly new with classes, and I've been looking online for some kind of tutorial on this, but unfortunately I've been unsuccessful at finding a solution. Any help you guys could give me would be much appreciated.

I have 2 files.

1) variables.inc.php:

$myvar = "hello world";

2) myclass.php:

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

    function doSomething() {
        echo "myvar: $myvar";
 开发者_运维技巧   }
}

The problem: $myvar returns empty. I tried adding this line between function doSomething() { and echo...: global $myvar; But it doesn't seem to work that way either. Any suggestions?


$myvar is defined in global scope.

If it really needs to be accessed then

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

However the usage of global variables in other scopes is considered bad practice.

See Variable scope chapter in the official PHP manual for a more detailed explanation.


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


NEVER use global with classes!

If you need a variable in your class, then inject it in a method or the constructor:

class myClass {

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

}

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜