我有两个课程,目前我通过使用它来引用另一个课程:
ClassB::func() { global $classAObject; echo $classAObject->whatever(); }
但是,我被告知不鼓励使用global
。是吗,为什么?
答案 0 :(得分:7)
有很多理由不使用全局变量。这里只是几个:
处理您在帖子中提供的示例的更好方法是传递包含所需数据的对象。
classB::func($obj)
{
echo $obj->whatever();
}
$obj = new classAObject;
classB::func($obj);
答案 1 :(得分:0)
原因是它忽略了OOP封装的想法。这样做要好得多:
ClassB::func($classAObject)
{
echo $classAObject->whatever();
}