is it possible to only instantiate my class once and have the data that has been passed into my class available globally?
In my case I have a class called Mail and I’m instantiating it once on my main page. How can I get the information gathered by the methods available to other parts of my site without having to make a new Mail object?
On some of my files, i need to re include the Mail.class.php because they are outside the scope of the main include php page. But vital information has already been gathered into the already created object Mail. I need to access that information, and I don’t want to dump the information into sessions either.
Consider using a Dependency Injection container. The basic principle is what you are describing: define an instance of a class as a service in your container, and allow it to be used from anywhere in your code that has access to the container.
The Symfony framework’s DI component is available as a separate component, or you can check out Pimple as a lightweight example. These are two that I use; I’m sure there are many others.