目前我正在重新编写一些我目前编写的代码:
<?php
global $foo;
$foo = "foo";
class foo{
function bar(){
global $foo;
return $foo."bar";
}
}
$class = new foo();
echo foo->bar();
//returns 'foobar';
?>
这很有效,很好。我的问题是,这是包含变量的正确方法吗?我的一些类文件有超过20个全局变量,必须在它们使用的每个方法中重新定义为全局变量。
答案 0 :(得分:3)
尽可能避免使用全局变量。我不打算在这里重复原因,因为有很多答案可以解释为什么它被认为是一种不好的做法(example)。
相反,将类中需要的变量传递给构造函数,例如:
class foo{
protected $foo;
public function __construct($foo){
$this->foo = $foo;
}
public function bar(){
return $this->foo . "bar";
}
}
$foo = "foo";
$class = new foo($foo);
echo foo->bar();