There are several ways to use skins in PHP, I’ve put some through a performance test.
Basicly you can use either evaluated PHP or a string that will undergo str_replace’s.
When evaluating PHP in a file it seems to be faster than replacing tags in a string. This for PHP streams through the file during execution instead of handling one big string. The difference is minimal though (15% in my tests).
Although when the PHP code is placed in a string instead of in a file which has to be done in case a string is cached in a database or is generated from compiling from another format it is significantly slower than using str_replace’s on a normal string (600%!), this is because the original sourcecode, the intermediate code and the return from the code all take a lot of memory.
Either use cached PHP files or a string with tags instead of PHP code in a database, never the otherway around (what happens very often).