::, the scope resolution operator,  is used for referencing static members and constants of a class. It is also used to reference a superclass's constructor. Here is some code illustrating several different uses of the scope resolution operator:
<?php
class A {
    const BAR = 1;
    public static $foo = 2;
    private $silly;
    public function __construct() {
         $this->silly = self::BAR;
    }
}
class B extends A {
    public function __construct() {
        parent::__construct();
    }
    public static function getStuff() {
         return 'this is tiring stuff.';
    }
}
echo A::BAR;
echo A::$foo;
echo B::getStuff();
?>
A little trivia: The scope resolution operator is also called "paamayim nekudotayim", which means "two dots twice" in hebrew.
& in the context of your example isn't doing anything useful if you are using php 5 or greater and should be removed. In php 4, this used to be necessary in order to make sure a copy of the returned object wasn't being used. In php 5 object copies are not created unless clone is called. And so & is not needed. There is still one case where & is still useful in php 5: When you are iterating over the elements of an array and modifying the values, you must use the & operator to affect the elements of the array.