У меня есть два класса, и в настоящее время я ссылаюсь один на другой, используя это:
ClassB :: FUNC () { глобальный $ classAObject; echo $ classAObject-> whatever (); }
Тем не менее, мне сказали, что использование global
не рекомендуется. Это и почему?
Существует много причин не использовать глобальные переменные. Вот лишь несколько:
Лучший способ обработать пример, который вы дали в своем сообщении, – это передать объект, содержащий нужные вам данные.
classB::func($obj) { echo $obj->whatever(); } $obj = new classAObject; classB::func($obj);
Причина заключается в том, что он взрывает идею инкапсуляции ООП. Это гораздо лучше сделать:
ClassB::func($classAObject) { echo $classAObject->whatever(); }