This is one of those design patterns which is good to learn, has good intentions but has inherent weaknesses which make experienced programmers initiate gag-reflexes when it is mentioned. In short, over-use of the singleton pattern will inhibit growth and the re usability of your code as the project grows. The basic intent of the singleton pattern to prevent multiple instantiations of the same object as various sections of a web framework access your singleton throughout a single page rendering.
If you're at the point of wanting to use patterns to simplify your code, that is a good thing; but be sure to apply the right patterns to the correct problems. Examples being Registry, Factory, Abstract Factory and Dependency Injection being a few I would explore when starting out.
Finally, here is an example of a singleton class for PDO connections from one of my many php books, PHP Master: write cutting edge code.
class Database extends PDO
{
private static $_instance = null;
private function __construct() {
parent::__construct(APP_DB_DSN, APP_DB_USER, APP_DB_PASSWORD);
}
public static function getInstance() {
if(!(self::$_instance instanceof Database)) {
self::$_instance = new Database();
}
return self::$_instance;
}
}