Re: Re: Header files in PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Aug 21, 2014, at 6:39 PM, Paul M Foster wrote:

On Thu, Aug 21, 2014 at 04:19:44PM -0400, Jim Giner wrote:

On 8/21/2014 1:20 PM, Paul M Foster wrote:
Folks:

Over the years, I've heard a lot of back and forth about require_once, require, include, include_once and he like. Most of it centers around
the CPU time taken to execute these calls.

The "C" way to do something similar is to define a constant in a header file and then check for its existence in the C code file. In PHP, this
would be roughly like this:

LIBRARY FILE:

define('CONST_DATE', TRUE);

CODE FILE:

if (!defined('CONST_DATE'))
	include('date.lib.php');

Has anyone ever compared execute times to see if something like this
would be "cheaper" than include/require[_once]? Any thoughts on it?

Paul


I dont' understand your question.  Basically the use of
include/require et al, is to include code from other stand-alone
units.  It's not just looking for some one little thing such as a
constant value to exist. It's using a modular style of programming
and putting the pieces together at call time using require/include,
etc.

Am I missing the question here?

Yes, you are. In C, code from file B is compiled separately from file A
(a "makefile" is used to coordinate the compilation of each and all
files). These are all standalone object files at the end of compilation.
In order for file A to actually *use* the code in file B, a header
file is written for the routines in file B, and that header file is
conditionally included in the compilation of file A. The above code is a
PHP approximation of how it's typically done in C.

In PHP, the mechanism used to include code from another file in the
current one involves one of four calls:

include()
include_once()
require()
require_once()

But over the years, I've read many comments about how each of these
calls slows down PHP, some more than others. So my question was whether anyone had ever tested this mechanism against the way it's done in C (as
above) to determine if one is faster than the others.

(By the way, the C method of doing this is not dictated by the language,
but has arisen as a common method of accomplishing what the language
itself is not set up to do.)

Paul

As a commentary on this issue, it seems to me that one would have to look
at the source code that is compiled into the interpreter and see exactly
what the various include/require statements/functions actually do. With
out looking at that myself I am guess that the include/require functions
just establish a hard link to the included script files.
Just a guess.
JK

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux