Dependency injection is becoming a more and more popular topic among developers, but for someone just starting out with it, a lot of the sites out there explaining it can be confusing. On the Architexa blog there's a dead simple explanation of DI and what it's good for (warning: it's not a PHP example, but it translates over).
DI is fairly simple – its main goal is the removal of a class dependency from some code. This class dependency is then 'injected' into the code where it is needed. Using dependency injection helps in code maintenance, re-usability, testability, and improves code readability.
A code example is included of a User class that is responsible for making "users" and including all of the needed information and functionality to go with it in a self-contained object. They also mention some of the benefits that come along with it and the complications that could come from its use.