Multiple files every time, but you can consolidate common functions or page features into files that you will include.
You see lots of questions like "How do I tidy up my site by having it so I can use somedomain.com/index.php?page=contactus" and they're only doing it because they've seen it and think it's ahem 'cool'.
If you've got a problem with your register page you know where to go to fix it - the register page, or the included file register-funcs.php, if you're dragging page content from a database to debug it then that's an extra hurdle.
Obviously if you're delivering content such as articles that are content managed you will have pages for that.
Develop a system that lets you have a skeleton page. One of the big sites I work on has this as a template - and this actually IS the template
<?php
include('include/logincheck.php');
include('header-inc.php');
//get any $_GET vars here
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td width="25%"><?php include('include/lefttable.php');?></td>
<td width="50%"><table width="100%" border="1" cellpadding="0" cellspacing="0" class="contentTable">
<tr>
<th>MAIN BOX TITLE HERE</th>
</tr>
<tr>
<td align="center" class="notpaddy">PAGE CONTENTS HERE</td>
</tr>
</table></td>
<td width="25%"><?php include('include/righttable.php'); ?></td>
</tr>
</table>
<?php
include('footer-inc.php');
?>
The page contents are often replaced by a function defined at the bottom of the page or in a seperate include so the guts could become
<td align="center" class="notpaddy"><?php show_user_details(); ?></td>
This means the site could be redesigned really quickly and the functions just 'plopped' back in again.