Хочу выделить шапку и футер сайта в header.php и footer.php и вызывать их на страницах сайта. Но мне интересно: как изменится скорость загрузки страницы. Или лучше оставить как есть?
Вы можете самостоятельно протестировать, посчитав время например так, запомнить microtime(1) и после операций отнять от текущего времени эту величину. При include пхп сначала читает обычным методом файл в память, а потом обрабатывает парсером, обычно все зависит от скорости\загруженности диска.
Если сильно волнует скорость загрузки страницы, лучше использовать кеширование.
Хороший принцип - принцип отделения кода от данных и всего этого вместе - от представления. Если хочется чего-то серьезного (а раз вы задаетесь вопросом быстродействия include, то на это похоже), отделите представление (html) от кода (php). Соединяться они имеют право только в скомпилированных шаблонах. Отвечая на вопрос - include очень быстр. Если вдруг, по какой-то неведомой мне причине, вам не хватит быстродействия, надо копать в сторону APC. Ну или бросить шаред хостинг и арендовать VPS.
Скорость тут не играет никакой роли. В частности, операционная система умеет кэшировать часто используемые файлы, и скорость диска оказывается совсем не при чем.
А вот подход с разделением на хидер и футер - неправильный и давно устарел.
Делить страницу надо не на хидер и футер, а на код и отображение. Потому что:
- во-первых, отдельно хидер и футер редактировать неудобно.
- во-вторых, иногда нам надо выполнить некоторый код ДО вызова хидера.
- в-третьих, у "середины" тоже должен быть свой шаблон - о чем многие начинающие разработчики забывают
В итоге страница должна собираться из трех частей:
1. Логика приложения. Должна выполняться ДО любого вывода, и хидера в том числе.
2. Общий шаблон сайта, который содержит в себе и хидер и футер. Вызывается после того, как отработала логика.
3. Шаблон конкретной страницы, который включается в общий шаблон сайта.
При такой структуре не составит никакого труда вместо страницы вывести сообщение об ошибке (при ошибке) или поменять формат вывода с HTML на JSON. Не говоря уже о смене дизайна.
Вариантов реализации может быть масса, пример самой простой, на чистом PHP, можно посмотреть здесь: http://www.phpfaq.ru/tpl#example