Que tal Lamakun
Ya veo que encontraste la solución
, solo quería comentarte que los TADs son simplemente eso, como dice la definición, un "tipo de dato abstracto" y en teoría deberías poder construir cualquier tipo a partir de un lenguaje POO.
Si bien PHP no es de los más puros en temas de POO, por más que no tengan algunas características como Java que te pueden ayudar, la idea de los TADs es que son independientes al lenguaje (como bien lo resuelves luego).
Resumiendo, lo que quiero decir es que no debería ser muy distinto hacer un TAD en PHP, es aplicar los conceptos base.
Abrazos