How to convert my classes to Dependency injection?
First, a few minor comments:

Class properties should almost always be protected or private.  This forces you to use a known tested interface (the class methods) to interact with the state stored in the class.  The properties section, something and validation should have all been protected or private.

Your method add does not add, it sets.  add might be appropriate for concatenation (although I'd prefer append or prepend).  It is best used for real addition.  Your add implementation would have been better named set.

I have added to your example class to highlight the benefits of Dependency Injection.  I have used text and title in place of your something.

Validation Interface

The validation interface defines the way to check for validity.  If we need to check for validity and we are passed an object that implements this interface we can be sure that it will work.  By relying on an interface rather than a specific object we reduce our coupling from a specific object to any object that implements the interface.

interface IValidation
{
    public function isValid($str);
}


Section Class

The constructor accepts all of the parameters that the class needs (the dependencies are injected).  I have used an array in the constructor (as a personal preference to remove a required order of parameters and to use named parameters with the associative array).  Standard SPL exceptions are thrown if the validation objects do not match the Validation interface.

class Section
{
    // Text for the section.
    protected $text;

    // Validation for the text.
    protected $textValidation;

    /// Title for the section.
    protected $title;

    // Validation for the title.
    protected $titleValidation;

    public function __construct(Array $setup)
    {
        $setup += array('Text'             =&gt; '',
                        'Text_Validation'  =&gt; NULL,
                        'Title'            =&gt; '',
                        'Title_Validation' =&gt; NULL);

        if (!$setup['Text_Validation'] instanceof IValidation)
        {
            throw new \InvalidArgumentException(
                __METHOD__ . ' requires Text_Validator');
        }

        if (!$setup['Title_Validation'] instanceof IValidation)
        {
            throw new \InvalidArgumentException(
                __METHOD__ . ' requires Title_Validation');
        }

        $this-&gt;text            = $setup['Text'];
        $this-&gt;textValidation  = $setup['Text_Validation'];
        $this-&gt;title           = $setup['Title'];
        $this-&gt;titleValidation = $setup['Title_Validation'];
    }

    public function setText($text)
    {
        $this-&gt;text = $text;
    }

    public function setTitle($title)
    {
        $this-&gt;title = $title;
    }

    // Return whether the section is valid.
    public function isValid()
    {
        return $this-&gt;textValidation-&gt;isValid($this-&gt;text) &amp;&amp;
            $this-&gt;titleValidation-&gt;isValid($this-&gt;title);
    }
}


Validation Class

Notice how this class implements the interface.

class Validation implements IValidation
{
    // The regex for a valid match.
    protected $validMatch;

    public function __construct($validMatch)
    {
        $this-&gt;validMatch = $validMatch;
    }       

    public function isValid($str)
    {
        return preg_match($this-&gt;validMatch, $str);
    }
}


Usage

We can see from the usage some of the benefits of dependency injection.  There is no hardcoded dependencies in any of the classes and we can glue the components together when they are used.  This allows us to define the exact type of validations that we require and pass them to the Section class with injection.

$alphanumUnderscores = new Validation('/^[[:alnum:]_]*$/');
$digits = new Validation('/^[[:digit:]]+$/');

$section = new Section(array('Text_Validation'  =&gt; $alphanumUnderscores,
                             'Title'            =&gt; 'InvalidTitle',
                             'Title_Validation' =&gt; $digits));

if (!$section-&gt;isValid())
{
    // The title should be digits.
    echo 'As expected the title is invalid.' . "\n";
}

$section-&gt;setTitle(9876);

if ($section-&gt;isValid())
{
    echo 'As expected the title is valid with digits.' . "\n";
}