简体   繁体   中英

PHP instantiate class in main program, access from functions

I've got a headache from reading about singletons and patterns and there must be a simpler way...

I have a nice utility function called log_it($severity,$message) that is used throughout a number of programs. It creates code to append application specific log entries to a shared log on disk. When I load the function once globally (using require) it is available throughout a program, in any function.

I'm converting the application as a whole to object-orientation for various good reasons. I'd like to create a logger class that has a log_it($severity,$message) method.

I'd like to create the object once, in global scope, and use it from within functions. I'd rather not have to declare the object as global within every function where i want to use it. In other words I want to emulate the global visibility of the simple non-object function but using a class. What I'd like to do is have $log=new logger() in the main program and then call $log->log_it() from anywhere without any further ado.

Hopefully there is a simple way to do this?

You can declare log_it as an static method. And call it from any place u want without needing to instantate the class. like so:

logger::log_it()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM