Stut wrote:
> Jo chem baas wrote:
>> Stut wrote:
>>> Jochem Maas wrote:
>>>> [EMAIL PROTECTED] wrote:
>>>>> I got different portions of code only used for certain purposes (who
>>>>> don't ;-)?). But what, in your opinion (better: in your experience)
>>>>> would be the best regarding script-performance: Putting each
>>>>> code-portion in a separate file and include it if required, putting
>>>>> it in a constant-dependent if-structure (if (defined('FOO') && FOO)
>>>>> {class foo{}; function foo(); ...}) 
>>>> defining functions or classes conditionally is not recommended,
>>>> because it
>>>> means they can only be defined at runtime and not compile time ...
>>>> which will
>>>> kill any op-code caching you might have in place or use in future
>>>> (e.g. php.net/apc)
>>> I'm not completely sure, but I think you're wrong there. Removing the
>>> condition in the example above will not affect any opcode caching since
>>> PHP cannot determine the result of that conditional until runtime.
>>
>> one of us is reading the other's post incorrectly - I have a feeling
>> we are
>> both trying to say the same thing.
>>
>> namely runtime class definitions don't have the same benefit of
>> op-code caching
>> as compiletime definitions.
>>
>> or not?
> 
> Not ;). There is no such thing as a compile-time definition in PHP.
> 
> Whether there is conditional definition or not, the opcode cache will
> look the same. The reason for this is that function and class
> definitions happen at runtime not compile time. This would have to be
> the case for conditional definition to work at all, since the compiler
> cannot determine the value of a condition at compile-time.

okay, but I was just paraphrasing the man Rasmus, although I admit I may
have misinterpreted (or misundersstood the 'why') - thought I pretty sure
he has written on a number of occasions that code like the following sucks
for op-code caches and should be avoided:

if (foo()) {
        class Foo { }
}

> 
> -Stut
> 

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

Reply via email to