Ofcourse simply disabling show_source() is not a solution because PHP can also do include() require(), fopen, exec, system, passthru, fpassthru and backticks to open files. Disabling all those means you might aswell chuck PHP in the bin.
One safe method is to setup a seperate webserver environment for each client; one hardware-server running many copies of the webserver software, each under it's own userid. Then you can give ownership of the PHP files to the webserver's userid, and make the files read/write for the client and his apache-user, but unreadable for the other clients and their apache-users.