我有这样的代码:
<? $a="localhost"; function body(){ global $a; echo $a; } function head(){ global $a; echo $a; } function footer(){ global $a; echo $a; } ?>
有没有办法在一个地方定义全局变量并让$a所有函数都可以访问该变量?不使用global $a;更多?
$a
global $a;
$GLOBALS可以使用数组代替:
$GLOBALS
$GLOBALS['a'] = 'localhost'; function body(){ echo $GLOBALS['a']; }
从手册:
一个关联数组,包含对当前在脚本全局范围内定义的所有变量的引用。变量名是数组的键。
如果您有一组需要一些公共变量的函数,那么具有属性的类可能是一个不错的选择,而不是全局:
class MyTest { protected $a; public function __construct($a) { $this->a = $a; } public function head() { echo $this->a; } public function footer() { echo $this->a; } } $a = 'localhost'; $obj = new MyTest($a);