Запретить создавать экземпляр класса

Если класс может только наследоваться, т.е. для него нельзя создавать экземпляров, то это можно сделать через ключевое слово abstract.

abstract class ClassParent
{
    public function getPHPVersion()
    {
        return PHP_VERSION;
    }
}

$myobj = new ClassParent(); // ошибка (Fatal error)

При попытке создать экземпляр класса, PHP выведет ошибку «Fatal error: Uncaught Error: Cannot instantiate abstract class».

При этом дочерние классы могут иметь экземпляры.

abstract class ClassParent 
{
    public function getPHPVersion()
    {
        return PHP_VERSION;
    }
}


class ClassChild extends ClassParent {
}

// код выполнится
$myobj = new ClassChild();
echo $myobj->getPHPVersion();

Класс, созданный через ключевое слово abstract, называют Абстрактный класс.