Two do-able methods.
- Turn the .php page into a .phps (PHP Source). Tell the user to right-click on the link and choose save as. Or, once they click the link, File -> Save As.
- Make a PHP script that read's another PHP script (or even itself) as TEXT (not as PHP, i.e. an include), and then output the contents of that file to the page. You could even "force" the browser to pop up the download dialog box instead of outputting to a page like HTML.
I'll give you the code for the force-download part of solution 2, the rest you should be able to come up with, or at least try.
Forcing download of a file/data:
$path = 'path/to/directory/';
$get = 'filename.php';
header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header ("Content-Type: application/octet-stream");
header ("Content-Length: " . filesize($path.$get));
header ("Content-Disposition: attachment; filename=$get");
That bit of code will allow you to configure where the file is and output the appropriate headers for a force-download.
I'll leave opening and outputting the file up to you. If you can't manage that much, post the code you tried.