require will stop script execution if PHP can't access the required file, whereas include will continue script execution and issue a warning.
As for one vs many files, I'd recommend grouping functions logically. For example, if you have a bunch of functions used to handle login, another bunch dealing with sending emails, others that handle DB access, they should go in three separate files: login.php, db.php, email.php
Once that is done, you will easily be able to find whatever specific function you need, and since they are likely to in turn use other functions within the same file, you have everything at your fingertips when you need to edit something or relearn how they work.
Create a single file, "config.php", "application_top.php" or whatever you'd like to call it and in this file place include/require for all files which are used for each and every page on your site. Any file which isn't needed on all pages should instead be included from those specific files that need them.
Also, I'd recommend having a look at PHP's OOP and autoloading functionality. You could for example create class Email, and whenever you want to send an email you simply
$e = new Email(); # the "magic" line"
/* followed by
$e->setFrom(...);
$e->setSubject(...);
etc...
*/
With autoloading properly set up, when PHP sees "new Email" it will include a file according to some pattern, for example 'phpclasses/Email.php', which means that you don't need to worry about including these files or not. They are included only if used.