Very similar. Lazy initialization for a static member. It was done because: 
1) I really didn't like the whole global thing (especially since you had to explicitly state the variable before you could use it 
2) The actual action (connecting to the database) doesn't happen immediately on include, but on actual use. This way we don't have to worry about try / catch on includes.