The reason for disallowing each user to read other user files is that some users have their own 'config.php' files which contain sensitive information, whereas some users dislike the ideas of others being able to see the file structure and source code of their content-management systems, therefore I'm trying to create system where the user has access to their home directory as the top-level folder. I.e. not able to 'cd /' and see everyone else's files, and system folders. I'm guessing from the comments that it isn't that simple.
Unlike the problem statement in the question itself, that's actually a reasonably solvable problem. Below is one possibility for how to solve that.
First, make each home directory accessible only to its owner, and nobody else. In other words, mode 0700.
Second, set users' umask to 0077. That means that by default, files will be created with group- and world- permission bits set to zero, allowing only owner access.
If the particular file must be accessible by some other process (it's a .php file, so maybe a web server?), give that process its own group membership, set the group ownership on the home directories to that group, and set the mode to 0710. The "execute" bit on a directory allows access if one knows the specific name of a subdirectory or file to which access is desired, but does not allow listing directory contents (that's "read" on the directory).
Any subdirectories under the users' home directories which should be accessible to that same process can have relatively permissive world permission bits. (For example, files 0644 and directories 0755 or 0751.)
If desirable, give users a "share" area, perhaps outside of their home directories, which has a more permissive set of permissions. Maybe for each user, have /home/$USER and /share/$USER, where the directory under /share has 0755 permissions and is owned by the corresponding user. Possibly add a symbolic link in the user's home directory pointing to their "share" directory, and tell them that other users' shared files are in /share/$USER. If you are going this route, you may want to use a umask of 0022 instead, which will default files to be read-only by non-owners. Make sure to inform users that files they store under /share are readable by all users on the system.