В PHP в качестве индексов массивов могут использоваться только простые типы. Сложные типы, такие как массивы, объекты и ресурсы, не работают должным образом.
Редактировать: О, если память мне не изменяет, вы должны также следить за логическими значениями, я, кажется, вспоминаю проблему, с которой я столкнулся.
Edit2: В вашем случае граф объектов должен указывать на объекты, а не на массив.
Так, например, ваш код будет выглядеть так:
$v = new Vertex();
$v->add(new Edge());
$vertices[] = $v;
Edit3: Я заметил несколько серьезных синтаксических ошибок в вашем коде. Я не знаю точной причины, но если вы действительно не можете понять их прямо, я бы посоветовал вам несколько раз взглянуть на руководство по PHP.
Edit4: Кстати, вы используете объект в качестве индекса массива, а не класс . Не существует типа данных PHP для классов, есть только имена классов, которые являются простыми строками.