[UPHPU] require_once vs. class_exists
rusty.keele at yahoo.com
Fri Apr 18 10:42:12 MDT 2008
Scott Mattocks <scott at crisscott.com> wrote: Rusty Keele wrote:
> Which is a better approach to use:
> 1. require_once('path/to/class.php');
> 2. if(!class_exists('path/to/class.php')) require('path/to/class.php');
> I have been using the first approach in all my files where I need to instantiate a specific class, but I am wondering if the second approach is more efficient? Are there any benefits to using the second approach - such as less caching of objects - or do these two statements do the same thing?
It depends on which version of PHP you are using. require_once was not
very efficient in PHP 4 and early versions of PHP 5. I believe it has
been fixed in later versions of PHP 5.
On a side not, you are passing a file path to class_exists. That is
incorrect. You should pass the class name.
On another side note, require, include, require_once and include_once
are language constructs not functions. You don't need the () and some
would tell you that it is incorrect to add them.
I am using PHP 5.2.5, and I recently created a new class that will store database login credentials such as hostname, username and password.
Now I am searching for all the PHP files that have the db credentials in the code and I'm changing them to instantiate an object of my new class and get the credentials from it.
I am using require_once to make sure the class file is included, but would I be better off to first check and see if the class exists, and if not then require the class file?
Ultimately, I am trying to decide if there are any advantages to using class_exists rather than require_once.
Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now.
More information about the UPHPU